diff --git a/product/ERP5Catalog/CatalogTool.py b/product/ERP5Catalog/CatalogTool.py
index 9a54a93d11b22b25c0f904e9f77da553c131ffe5..d5915b961ac74839029b99f1880fbb7a375421b8 100644
--- a/product/ERP5Catalog/CatalogTool.py
+++ b/product/ERP5Catalog/CatalogTool.py
@@ -37,7 +37,7 @@ from Products.CMFCore.CatalogTool import IndexableObjectWrapper as CMFCoreIndexa
 from Products.CMFCore.utils import UniqueObject, _checkPermission, _getAuthenticatedUser, getToolByName
 from Products.CMFCore.utils import _mergedLocalRoles
 from Globals import InitializeClass, DTMLFile, package_home
-from Acquisition import aq_base, aq_inner, aq_parent
+from Acquisition import aq_base, aq_inner, aq_parent, ImplicitAcquisitionWrapper
 from DateTime.DateTime import DateTime
 from Products.CMFActivity.ActiveObject import ActiveObject
 from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
@@ -81,7 +81,7 @@ except ImportError:
   pass
 
 from Persistence import Persistent
-from Acquisition import Implicit, Explicit
+from Acquisition import Implicit
 
 def getSecurityProduct(acl_users):
   """returns the security used by the user folder passed.
@@ -93,15 +93,7 @@ def getSecurityProduct(acl_users):
     return SECURITY_USING_NUX_USER_GROUPS
 
 
-class IndexableObjectWrapper(CMFCoreIndexableObjectWrapper, Explicit):
-
-
-    def __getattr__(self, name):
-        vars = self.__vars
-        if vars.has_key(name):
-            return vars[name]
-        ob = aq_inner(self.__ob)
-        return getattr(ob, name)
+class IndexableObjectWrapper(CMFCoreIndexableObjectWrapper):
 
     def __setattr__(self, name, value):
       # We need to update the uid during the cataloging process
@@ -754,7 +746,8 @@ class CatalogTool (UniqueObject, ZCatalog, CMFCoreCatalogTool, ActiveObject):
         if predicate_property_dict is not None:
           vars['predicate_property_dict'] = predicate_property_dict
         vars['security_uid'] = security_uid
-        return w.__of__(object.aq_parent)
+
+        return ImplicitAcquisitionWrapper(w, aq_parent(document_object))
 
     security.declarePrivate('reindexObject')
     def reindexObject(self, object, idxs=None, sql_catalog_id=None,**kw):