Hello Chris, Thanks for your email. As you will notice I posted a related question on http://opensource.atlassian.com/projects/hibernate/browse/HHH-3110 this morning.I haven't looked closely enough to comment on the query problem but I can confirm that your assessment above is correct. JTATransaction has and always has had a dependency on JNDI. It's only been recently uncovered because a) we changed how/when the transaction was instantiated and b) it turns out some folks are using JTA services outside the container that don't bind to JNDI. If you want to use such a service, you're exactly right - also use a JNDI service or create a TransactionFactory/Transaction combo that doesn't need JNDI.The strange thing is that I'm also using JNDI with my Transaction Manager - System.setProperty("java.naming.factory.initial", "org.apache.naming.java.javaURLContextFactory");. And Hibernate is fetching the JTA service using the following lookup class: http://docs.codehaus.org/display/BTM/Hibernate#Hibernate-Transactionmanagerlookupclass Using the following Hibernate config: <property name="transaction.manager_lookup_class"> db.BitronixTransactionManagerLookup </property> <property name="transaction.factory_class"> org.hibernate.transaction.JTATransactionFactory </property> As I understood from your post on issue HHH-3110, Hibernate should not use a lookup class anymore but create (instance) the Transaction Manager. Am I right ? If so, to do this, I should implement a org.hibernate.transaction.TransactionFactory for my transaction manager ?