Hi! If I copy an instance of a python class (I am developing a python product) I got the problem that it does a deep copy. The original has a attribute called default_catalog which is a reference to the catalog where all objects are stored. If I do a copy, there is a unfortunately a new object (default_catalog). But it should be a reference to the catalog where all objects are stored. I store a template in the folder 'defaults' and want to copy it to 'documents'. (Layout: root/defaults root/documents) In the Object which gets copied: def createNewDocument(self, REQUEST=None): r=self.root() orig=r.defaults[self.id] copy=orig._getCopy(r) # Stolen form CopySupport.manage_clone. Don't know what it does copy=copy.__of__(orig) copy.id=r.nextID() copy.isDefaultDocument=0 r.documents._setObject(copy.id, copy) # TODO: Btree if copy.default_catalog!=orig.default_catalog: print "orig", orig.default_catalog print "copy", copy.default_catalog raise "Bad Copy" if REQUEST: REQUEST.RESPONSE.redirect('/' + r.id + '/documents/' + copy.id) The log: orig <ZCatalog instance at 02633AB8> copy <ZCatalog instance at 02522EC0> --> there is a new object _getCopy does this (From Zope's CopySupport.py): def _getCopy(self, container): # Ask an object for a new copy of itself. f=tempfile.TemporaryFile() self._p_jar.exportFile(self._p_oid,f) f.seek(0) ob=container._p_jar.importFile(f) f.close() return ob I think the export and reimport creates new objects. I think I will write my own copy method and don't use _getCopy except someone has a solution Thank you for listening. thomas