diff --git a/product/ERP5/Document/Delivery.py b/product/ERP5/Document/Delivery.py
index bafbd43ce5223fbb605a126d0e94521ab938c86b..b84f13164b3b6ac100c83f9f3feeee930270a32f 100644
--- a/product/ERP5/Document/Delivery.py
+++ b/product/ERP5/Document/Delivery.py
@@ -330,12 +330,16 @@ class Delivery(XMLObject, ImmobilisationDelivery):
          divergence_list.extend(movement.getDivergenceList())
       return divergence_list
 
-    def updateCausalityState(self,**kw):
+    def updateCausalityState(self, **kw):
       """
       This is often called as an activity, it will check if the
       deliver is convergent, and if so it will put the delivery
       in a solved state, if not convergent in a diverged state
       """
+      updateCausalityState = UnrestrictedMethod(self._updateCausalityState)
+      return updateCausalityState(**kw)
+
+    def _updateCausalityState(self, **kw):
       if getattr(self, 'diverge', None) is not None \
             and getattr(self, 'converge', None) is not None:
         if self.isDivergent(**kw):