Can anyone suggest how to avoid the following? Feel free to consider this a bug report, if it is a bug. 2000-01-16T04:38:30 PANIC(300) ZODB A storage error occurred in the last phase o f a two-phase commit. This shouldn't happen. The application may be in a hosed state, so we will not allow transactions to commit from here on This happens after some seemingly successful database activity. I believe the error is triggered by the commit before returning to the browser. I suspect I have opened a connection in a way that conflicts with the existing one. I say, in some code which a form calls, conn = Globals.DB.open() root = conn.root() _my_Dir = root.get("OrgUser", None) if _my_Dir : print "Found directory" else: print "Creating directory" root["OrgUser"] = OrgUserDirectory() #subclass of PersistentMapping _my_Dir = root["OrgUser"] I then add an object to _my_dir, using dictionary protocols. The zope session is started with -D. running Zope 2.1.1 on win32. It may also be relevant that my function returns a plain string to the browser.