diff --git a/product/ERP5/Document/Delivery.py b/product/ERP5/Document/Delivery.py
index 3acd2c2b973106c92775ea505c0c255ef490e268..291d5129d62c25ae3bea40acd4bc3e6ca629909e 100644
--- a/product/ERP5/Document/Delivery.py
+++ b/product/ERP5/Document/Delivery.py
@@ -680,6 +680,12 @@ class Delivery(XMLObject, ImmobilisationDelivery):
 
       if rule_reference is None:
         return
+
+      # only expand if we are not in a "too early" or "too late" state
+      if (self.getSimulationState() in
+          self.getPortalDraftOrderStateList()):
+        return
+
       portal_rules = getToolByName(self, 'portal_rules')
       res = portal_rules.searchFolder(reference=rule_reference,
           validation_state="validated", sort_on='version',
@@ -690,10 +696,7 @@ class Delivery(XMLObject, ImmobilisationDelivery):
       else:
         raise NotFound('No such rule as %r is found' % (rule_reference,))
 
-      # only expand if we are not in a "too early" or "too late" state
-      if (self.getSimulationState() not in
-          self.getPortalDraftOrderStateList()):
-        self._createAppliedRule(rule_id, force=force, **kw)
+      self._createAppliedRule(rule_id, force=force, **kw)
 
     def _createAppliedRule(self, rule_id, force=0, activate_kw=None, **kw):
       """