diff --git a/product/ERP5/mixin/rule.py b/product/ERP5/mixin/rule.py
index e53249a9103f49eb585d102a8896438dca98fbf7..7dd29a96c1c164744e2f3d7558e198b9ba00588c 100644
--- a/product/ERP5/mixin/rule.py
+++ b/product/ERP5/mixin/rule.py
@@ -269,7 +269,10 @@ class RuleMixin:
     # First, we update all properties (exc. quantity) which could be divergent
     # and if we can not, we compensate them
     for decision_movement in decision_movement_list:
-      decision_movement_quantity = decision_movement.getQuantity()
+      if decision_movement.isPropertyRecorded('quantity'):
+        decision_movement_quantity = decision_movement.getRecordedProperty('quantity')
+      else:
+        decision_movement_quantity = decision_movement.getQuantity()
       decision_quantity += decision_movement_quantity
       if self._isProfitAndLossMovement(decision_movement):
         if decision_movement.isFrozen():