Ok, I have narrowed down my problem to the following, when calling get_transaction().commit(), the : In ZODB: In ZODB.Transaction.Transaction commit line 264: self._finish_many(jars) _finish_many line 393: jar.tpc_finish(self) in ZODB.Connection.Connection tpc_finish line 692: self._storage.tpc_finish(transaction, self._invalidate_invalidating) in ZODB.BaseStorage.BaseStorage tpc_finish line 155: if transaction is not self._transaction: return Now this line returns without calling _invalidate_invalidating in Connection.Connection. This in turn causes that the global lock on Globals.DB is not released. This freezes up Zope. This keeps me up 'till 3 in the morning. What am I doing wrong that causes this. Shouldn't the code above have some safeguard against such blocking. Also logging this in the collector. Etienne