BTrees imports a module named cPersistence. This import will only succeed if ZODB is imported first. The __init__ in the ZODB package adds cPersistence to sys.modules. As far as I can tell, BTrees has always worked this way. Are you sure you're doing exactly the same thing to test with the different versions of Zope? Jeremy