diff --git a/lib/python/ZClasses/Method.py b/lib/python/ZClasses/Method.py
index 27ced703236a0691f3eb261d3ce76d4a83415f89..7c1488332e90a8d7364ff1c8c7d3e5b800fc7b55 100644
--- a/lib/python/ZClasses/Method.py
+++ b/lib/python/ZClasses/Method.py
@@ -188,13 +188,12 @@ class ZClassMethodsSheet(
 
     def _delObject(self, id, dp=1):
         # Ick!  This is necessary to deal with spaces. Waaa!
+        object=self._getOb(id)
+        object.manage_beforeDelete(object, self)
         id=strip(id)
-        if id=='acl_users':
-            if hasattr(self, '__allow_groups__') and \
-               self.__dict__.has_key('__allow_groups__'):
-                delattr(self, '__allow_groups__')
-
-        self._objects=tuple(filter(lambda i,n=id: strip(i['id']) != n, self._objects))
+        self._objects=tuple(filter(lambda i,n=id:
+                                   strip(i['id']) != n,
+                                   self._objects))
         self._delOb(id)
 
     def _getOb(self, id, default=_marker):