diff --git a/product/ERP5/Tool/CategoryTool.py b/product/ERP5/Tool/CategoryTool.py
index 02f8b3bfb5a6ba4960b52b5088e95d190ad1a6f7..0587cd49fc1669ac879dccd8ab316b78d297c9e5 100755
--- a/product/ERP5/Tool/CategoryTool.py
+++ b/product/ERP5/Tool/CategoryTool.py
@@ -39,6 +39,8 @@ from OFS.Folder import Folder as OFS_Folder
 from Products.ERP5Type import Permissions
 from Products.CMFCore.PortalFolder import PortalFolder
 from Products.ERP5Type.CopySupport import CopyContainer
+from Products.CMFCore.utils import getToolByName
+from Products.ERP5Type.Document import newTempBase
 
 from zLOG import LOG
 
@@ -119,7 +121,26 @@ class CategoryTool(CopyContainer, CMFCategoryTool, BaseTool):
     security.declareProtected(Permissions.AccessContentsInformation, 'getUids')
     getUids = getCategoryParentUidList
 
+    def updateRelatedContent(self, context, previous_category_url, new_category_url):
+      """
+        TODO: make this method resist to very large updates (ie. long transaction)
+      """
+      CMFCategoryTool.updateRelatedContent(self,context,previous_category_url,new_category_url)
+
+      # We also need to udpate all predicates membership
+      domain_tool = getToolByName(context,'portal_domains')
+      portal_catalog = getToolByName(context,'portal_catalog')
+      kw = {}
+      kw['predicate_category.category_uid'] = context.getUid()
+      object_list = portal_catalog(**kw)
+      for predicate in [x.getObject() for x in object_list]:
+        membership_list = []
+        for category in predicate.getMembershipCriterionCategoryList():
+          new_category = self.updateRelatedCategory(category, previous_category_url, new_category_url)
+          membership_list.append(new_category)
+        predicate.setMembershipCriterionCategoryList(membership_list)
+      # We do not need to to things recursively since updateRelatedContent is already
+      # recursive.
+
 InitializeClass( CategoryTool )
 
-#from Products.ERP5Type.Utils import monkeyPatch
-#monkeyPatch(CMFCategoryTool,CategoryTool,exclude_list=['__init__'])