diff --git a/product/ERP5/Document/OrderRule.py b/product/ERP5/Document/OrderRule.py
index da8ae1e7cac1ae8725235e437ddb5467ee8ec833..c6c51e4a41c9ce0140bd2a876cc4249267b7cbfc 100644
--- a/product/ERP5/Document/OrderRule.py
+++ b/product/ERP5/Document/OrderRule.py
@@ -79,7 +79,8 @@ class OrderRule(DeliveryRule):
     immutable_movement_list = []
     order = applied_rule.getDefaultCausalityValue()
     if order is not None:
-      order_movement_list = order.getMovementList()
+      order_movement_list = order.getMovementList(
+                     portal_type=order.getPortalOrderMovementTypeList()):
       # check existing movements
       for movement in applied_rule.contentValues(portal_type=movement_type):
         if (not movement.getLastExpandSimulationState() in
@@ -106,9 +107,6 @@ class OrderRule(DeliveryRule):
           order_movement_dict[order_movement.getPath()] = s_m
       # Create or modify movements
       for movement in order_movement_list:
-        # FIXME: to be improved later
-        if  movement.getPortalType() not in ('Tax Line', ):
-          continue
         related_order = order_movement_dict.get(movement.getPath(), None)
         if related_order is None:
           related_order = movement.getOrderRelatedValue()