I get a problem where "self" loses it's acquisition wrapping between method calls. It happens as follows: Defintion: ========== class MyClass(CatalogAware, SimpleItem): # snip def fancySetattr(self, attrName, attrValue): self.__dict__['_dyn_%s' %attrName] = attrValue self.reindex_object() MyClass.__setattr__ = fancySetattr Usage: ====== #get MyClass instance myInstance = folder.restrictedTraverse("Instance1") myInstance.aq_parent #works ok myInstance.name = "John" Problem: ======== when stepping into the above code, I end up, as expected, in fancySetattr with "self" being myInstance. All is fine, except for the fact that "self" is no longer acquisition wrapped thus the self.reindex_object() line does not work as it is dependant on being able to acquire the catalog, which it can't. Why does myInstance lose it's acquisition wrapper once it is passed to fancySetattr as "self"? Is there a way to re-wrap it or not lose the wrapping at all? Any help would be appreciated! Etienne Running Zope2.7 rc1 on Window 2000 with Python 2.3.3 (Windows binary dist)