By default, Zope and ZODB associate each thread with a separate transaction. If you run a new thead, it should get its own database connection and explicitly commit the transaction in that thread. It is possible to override this behavior, but I imagine it would be quite hard. Jeremy