We've released Durus 3.9. Durus offers an easy way to use and maintain a consistent collection of object instances used by one or more processes. Access and change of a persistent instances is managed through a cached Connection instance which includes commit() and abort() methods so that changes are transactional. Durus continues to provide reliable data storage for all of our applications, and it is works in python >2.4, including python 3.1. It includes classes for persistent dictionary, list, and set types, as well as BTrees, and a storage implementation that allows for fast startup even with very large databases. It accomplishes all this in under 5000 lines of code, so it is possible for ambitious users to read the code and understand how it works. There are only a few changes since the last release: Remove FileStorage2 support. ShelfStorage is *the* FileStorage implementation now. If you have a data file that uses the FileStorage2 format, use the db_to_shelf.py script with the Durus 3.8 release to convert it before upgrading to this Durus release. Remove masterhost/masterport options from durus script. The pack() method on FileStorage did raise an AssertionError when there was an attempt to pack a temporary file or a readonly file. Now it just skips the packing. New oids were not cross-checked against pending invalidations, and this could cause unnecessary WriteConflict exceptions. Now they are.