diff --git a/product/ERP5/Document/AcceptSolver.py b/product/ERP5/Document/AcceptSolver.py
index d49cb693918e9bf6091ab700a80f6adc0a971b13..9db36a26c9aba5bd7770a5fe6d06e68d38a50bb7 100644
--- a/product/ERP5/Document/AcceptSolver.py
+++ b/product/ERP5/Document/AcceptSolver.py
@@ -64,7 +64,7 @@ class AcceptSolver(SolverMixin, ConfigurableMixin, XMLObject):
     original one recorded.
     """
     configuration_dict = self.getConfigurationPropertyDict()
-    portal_type = self.getPortalObject().portal_types[self.getPortalType()]
+    portal_type = self.getPortalObject().portal_types.getTypeInfo(self)
     solved_property_list = configuration_dict.get('tested_property_list',
                                                   portal_type.getTestedPropertyList())
     for movement in self.getDeliveryValueList():
diff --git a/product/ERP5/Document/AdoptSolver.py b/product/ERP5/Document/AdoptSolver.py
index 65c79bde6e39827f5aa7b1881da22578f6d8072f..0f551768aaba44fccdcfd37b6b7287151e204279 100644
--- a/product/ERP5/Document/AdoptSolver.py
+++ b/product/ERP5/Document/AdoptSolver.py
@@ -65,7 +65,7 @@ class AdoptSolver(SolverMixin, ConfigurableMixin, XMLObject):
     Adopt new property to movements or deliveries.
     """
     configuration_dict = self.getConfigurationPropertyDict()
-    portal_type = self.getPortalObject().portal_types[self.getPortalType()]
+    portal_type = self.getPortalObject().portal_types.getTypeInfo(self)
     solved_property_list = configuration_dict.get('tested_property_list',
                                                   portal_type.getTestedPropertyList())
     for movement in self.getDeliveryValueList():
diff --git a/product/ERP5/Document/TradeModelSolver.py b/product/ERP5/Document/TradeModelSolver.py
index 1b981d7aed046928a42cacb37972a455c0a8433e..9681465d3296d1e3a234e0e432c32a550044bdb2 100644
--- a/product/ERP5/Document/TradeModelSolver.py
+++ b/product/ERP5/Document/TradeModelSolver.py
@@ -61,7 +61,7 @@ class TradeModelSolver(AcceptSolver):
     one recorded, and then update Trade Model related lines accordingly.
     """
     configuration_dict = self.getConfigurationPropertyDict()
-    portal_type = self.getPortalObject().portal_types[self.getPortalType()]
+    portal_type = self.getPortalObject().portal_types.getTypeInfo(self)
     solved_property_list = configuration_dict.get('tested_property_list',
                                                   portal_type.getTestedPropertyList())
 
diff --git a/product/ERP5/Document/UnifySolver.py b/product/ERP5/Document/UnifySolver.py
index e2dd83d80f2b483e60ffa4ee4d588077bcfef396..7d9687b06c0dbcdebb4fecc7a5829f9dbdbc4e12 100644
--- a/product/ERP5/Document/UnifySolver.py
+++ b/product/ERP5/Document/UnifySolver.py
@@ -62,7 +62,7 @@ class UnifySolver(AcceptSolver):
     original one recorded.
     """
     configuration_dict = self.getConfigurationPropertyDict()
-    portal_type = self.getPortalObject().portal_types[self.getPortalType()]
+    portal_type = self.getPortalObject().portal_types.getTypeInfo(self)
     solved_property_list = configuration_dict.get('tested_property_list',
                                                   portal_type.getTestedPropertyList())
     # XXX it does not support multiple tested properties.