diff --git a/product/ERP5/Document/AdoptSolver.py b/product/ERP5/Document/AdoptSolver.py
index 0b4c1f3483b5ab49f96ab98343e95adbaa0d8f19..28c147169a99eff39dbf3e3fb9641270f246e171 100644
--- a/product/ERP5/Document/AdoptSolver.py
+++ b/product/ERP5/Document/AdoptSolver.py
@@ -79,8 +79,11 @@ class AdoptSolver(SolverMixin, ConfigurableMixin, XMLObject):
       for solved_property in solved_property_list:
         # XXX hardcoded
         if solved_property == 'quantity':
+          # For 'quantity' case, we need to recalculate delivery_ratio
+          # for all related simulation movements.
+          simulation_movement_list = movement.getDeliveryRelatedValueList()
           total_quantity = sum(
-            [x.getQuantity() for x in movement.getDeliveryRelatedValueList()])
+            [x.getQuantity() for x in simulation_movement_list])
           movement.setQuantity(total_quantity)
           for simulation_movement in simulation_movement_list:
             quantity = simulation_movement.getQuantity()