diff --git a/product/ERP5Type/Base.py b/product/ERP5Type/Base.py
index d513c2d28f75b45ec22edd601a2ae9f21ad2a367..0748428288083fac1d1350366051b5fdcd2eba77 100755
--- a/product/ERP5Type/Base.py
+++ b/product/ERP5Type/Base.py
@@ -428,7 +428,7 @@ class Base( CopyContainer, PortalContent, ActiveObject, ERP5PropertyManager ):
     if not Base.aq_related_generated:
       from Utils import createRelatedValueAccessors
       generated = 1
-      portal_categories = getToolByName(self, 'portal_categories', None)
+      portal_types = getToolByName(self, 'portal_types', None)
       generated_bid = {}
       for pid, ps in PropertySheet.__dict__.items():
         if pid[0] != '_':
@@ -437,6 +437,12 @@ class Base( CopyContainer, PortalContent, ActiveObject, ERP5PropertyManager ):
               #LOG( "Create createRelatedValueAccessors %s" % bid,0,'')
               createRelatedValueAccessors(Base, bid)
               generated_bid[bid] = 1
+      for ptype in portal_types.objectValues('ERP5 Type Information') :
+        for bid in ptype.base_category_list :
+          if bid not in generated_bid :
+            createRelatedValueAccessors(Base, bid)
+            generated_bid[bid] = 1
+      
       Base.aq_related_generated = 1
 
     # Always try to return something after generation