diff --git a/product/ERP5/mixin/solver.py b/product/ERP5/mixin/solver.py
index ad5f52b6f9dd11f09f4e7170b37c5d419fd3c1c1..c07736c700e4c03d74faa289f22a154e61bda5be 100644
--- a/product/ERP5/mixin/solver.py
+++ b/product/ERP5/mixin/solver.py
@@ -88,6 +88,19 @@ class ConfigurablePropertySolverMixin(SolverMixin,
                     , PropertySheet.TargetSolver
                     )
 
+  def updateConfiguration(self, **kw):
+    # This method is called once for each 'Solver Decision' of a
+    # 'Solver Process' that maps into this solver for the same
+    # Simulation Movement, so we need to take care not to lose
+    # information by overwriting.
+    configuration = self._getConfigurationPropertyDict()
+    tested_property_list = configuration.get('tested_property_list')
+    if tested_property_list is not None:
+      tested_property_set = set(tested_property_list)
+      tested_property_set.update(kw.get('tested_property_list', ()))
+      kw['tested_property_list'] = list(tested_property_set)
+    super(ConfigurablePropertySolverMixin, self).updateConfiguration(**kw)
+
   def getTestedPropertyList(self):
     configuration_dict = self.getConfigurationPropertyDict()
     tested_property_list = configuration_dict.get('tested_property_list')