diff --git a/product/ERP5/mixin/movement_collection_updater.py b/product/ERP5/mixin/movement_collection_updater.py
index 68cb7edb8e3a19fa7611fa8b83ea7b736b3b61d1..dedecdd0ac8936de2822a269725accca8a2e7c82 100644
--- a/product/ERP5/mixin/movement_collection_updater.py
+++ b/product/ERP5/mixin/movement_collection_updater.py
@@ -96,21 +96,22 @@ class MovementCollectionUpdaterMixin:
           tester_key.append(None)
       tester_key = tuple(tester_key)
       # try to aggregate
-      group_list = prevision_movement_dict.setdefault(tester_key, [])
+      aggregated_movement_list = prevision_movement_dict.setdefault(tester_key,
+                                                                    [])
       no_match = True
-      for group_movement in group_list:
-        if _compare(tester_list, group_movement, movement):
+      for aggregated_movement in aggregated_movement_list:
+        if _compare(tester_list, aggregated_movement, movement):
           no_match = False
           order = movement.getOrder()
           if order is not None:
-            group_movement.setOrderList(
-              group_movement.getOrderList() + [order])
-          # XXX how to handle quantity unit conversion here?
-          group_movement.setQuantity(
-            group_movement.getQuantity() + movement.getQuantity())
+            aggregated_movement.setOrderList(
+              aggregated_movement.getOrderList() + [order])
+          aggregated_movement.setConvertedQuantity(
+            aggregated_movement.getConvertedQuantity() + \
+            movement.getConvertedQuantity())
       if no_match:
-        group_list.append(movement)
-      prevision_movement_dict[tester_key] = group_list
+        aggregated_movement_list.append(movement)
+      prevision_movement_dict[tester_key] = aggregated_movement_list
 
     # Prepare a mapping between prevision and decision
     # The prevision_to_decision_map is a list of tuples