diff --git a/product/ERP5Type/dynamic/component_class.py b/product/ERP5Type/dynamic/component_class.py
index e233ed95b78e8bcacae74d98c9384baa3895257e..49f7307203aa79f0247c3470fa907cf110e7537f 100644
--- a/product/ERP5Type/dynamic/component_class.py
+++ b/product/ERP5Type/dynamic/component_class.py
@@ -94,25 +94,32 @@ class ComponentDynamicPackage(ModuleType):
     be a a way to specify priorities such as portal_skins maybe?
     """
     if not self.__registry_dict:
+      portal = getSite()
+
       try:
-        component_tool = getSite().portal_components
+        component_tool = portal.portal_components
       # XXX-arnau: When installing ERP5 site, erp5_core_components has not
       # been installed yet, thus this will obviously failed...
       except AttributeError:
         return {}
 
-      # XXX-arnau: contentValues should not be used as there may be a large
-      # number of objects, but as this is done only once, that should perhaps
-      # not be a problem after all, and using the Catalog is too risky as it
-      # lags behind and depends upon objects being reindexed
+      version_priority_set = set(portal.getVersionPriority())
+
+      # contentValues should not be used for a large number of objects, but
+      # this is only done at startup or upon reset, moreover using the Catalog
+      # is too risky as it lags behind and depends upon objects being
+      # reindexed
       for component in component_tool.contentValues(portal_type=self._portal_type):
         # Only consider modified or validated states as state transition will
         # be handled by component_validation_workflow which will take care of
         # updating the registry
         if component.getValidationState() in ('modified', 'validated'):
-          reference = component.getReference(validated_only=True)
           version = component.getVersion(validated_only=True)
-          self.__registry_dict.setdefault(reference, {})[version] = component
+          # The versions should have always been set on ERP5Site property
+          # beforehand
+          if version in version_priority_set:
+            reference = component.getReference(validated_only=True)
+            self.__registry_dict.setdefault(reference, {})[version] = component
 
     return self.__registry_dict