diff --git a/product/ERP5Type/ERP5Type.py b/product/ERP5Type/ERP5Type.py
index 0d6fe8af75b5f2c6207b022adc3973dd9148ea96..5b4a0adccce4a3c5825b4ae6babddbf917f5d351 100644
--- a/product/ERP5Type/ERP5Type.py
+++ b/product/ERP5Type/ERP5Type.py
@@ -423,10 +423,25 @@ class ERP5TypeInformation(XMLObject,
       """Getter for 'type_base_category' property"""
       return list(self.base_category_list)
 
-    # XXX this is required for a bootstrap issue.
+    # XXX these methods, _baseGetTypeClass, getTypeMixinList, and
+    # getTypeInterfaceList, are required for a bootstrap issue that
+    # the portal type class Base Type is required for _aq_dynamic on
+    # Base Type. So surpress calling _aq_dynamic when obtaining information
+    # required for generating a portal type class by declaring these methods
+    # explicitly.
     def _baseGetTypeClass(self):
       return getattr(aq_base(self), 'type_class', None)
 
+    security.declareProtected(Permissions.AccessContentsInformation,
+                              'getTypeMixinList')
+    def getTypeMixinList(self):
+      return getattr(aq_base(self), 'type_mixin', ())
+
+    security.declareProtected(Permissions.AccessContentsInformation,
+                              'getTypeInterfaceList')
+    def getTypeInterfaceList(self):
+      return getattr(aq_base(self), 'type_interface', ())
+
     security.declareProtected(Permissions.AccessContentsInformation,
                               'getTypeClass')
     def getTypeClass(self):