Hi Terry, If you call the abort() method on your connection, and your PersistentDict has changed by some other client connection, the PersistentDict will be put into the "ghost" state. You can check that by calling the _p_is_ghost() method on your PersistentDict. If it has changed, you should access the PersistentDict items in some way to get the revised version loaded into memory so that you can detect subsequent changes. Does this help in your situtation? As for _p_changed, yes, it is reset on every commit(). David