diff --git a/product/ERP5/InteractionWorkflow.py b/product/ERP5/InteractionWorkflow.py
index 87e0842768b941d97b7c7ff0e0c144d348b87e1e..4255345f6ad1c8002136f876e9b0daea02470237 100644
--- a/product/ERP5/InteractionWorkflow.py
+++ b/product/ERP5/InteractionWorkflow.py
@@ -257,61 +257,63 @@ class InteractionWorkflowDefinition (DCWorkflowDefinition, ActiveObject):
         for t_id in transition_list:
           tdef = self.interactions[t_id]
           assert tdef.trigger_type == TRIGGER_WORKFLOW_METHOD
-          if (tdef.portal_type_filter is None or \
-              ob.getPortalType() in tdef.portal_type_filter):
-            # Initialize variables
-            former_status = self._getStatusOf(ob)
-            econtext = None
-            sci = None
-
-            # Update variables.
-            tdef_exprs = tdef.var_exprs
-            if tdef_exprs is None: tdef_exprs = {}
-            status = {}
-            for id, vdef in self.variables.items():
-              if not vdef.for_status:
-                continue
-              expr = None
-              if tdef_exprs.has_key(id):
-                expr = tdef_exprs[id]
-              elif not vdef.update_always and former_status.has_key(id):
-                # Preserve former value
-                value = former_status[id]
+          if (tdef.portal_type_filter is not None and \
+              ob.getPortalType() not in tdef.portal_type_filter):
+            continue
+
+          # Initialize variables
+          former_status = self._getStatusOf(ob)
+          econtext = None
+          sci = None
+
+          # Update variables.
+          tdef_exprs = tdef.var_exprs
+          if tdef_exprs is None: tdef_exprs = {}
+          status = {}
+          for id, vdef in self.variables.items():
+            if not vdef.for_status:
+              continue
+            expr = None
+            if tdef_exprs.has_key(id):
+              expr = tdef_exprs[id]
+            elif not vdef.update_always and former_status.has_key(id):
+              # Preserve former value
+              value = former_status[id]
+            else:
+              if vdef.default_expr is not None:
+                expr = vdef.default_expr
               else:
-                if vdef.default_expr is not None:
-                  expr = vdef.default_expr
-                else:
-                  value = vdef.default_value
-              if expr is not None:
-                # Evaluate an expression.
-                if econtext is None:
-                  # Lazily create the expression context.
-                  if sci is None:
-                    sci = StateChangeInfo(
-                        ob, self, former_status, tdef,
-                        None, None, None)
-                  econtext = createExprContext(sci)
-                value = expr(econtext)
-              status[id] = value
-
-            sci = StateChangeInfo(
-                  ob, self, former_status, tdef, None, None, kwargs=kw)
-            # Execute the "after" script.
-            for script_name in tdef.after_script_name:
-              script = self.scripts[script_name]
-              # Pass lots of info to the script in a single parameter.
-              script(sci)  # May throw an exception
+                value = vdef.default_value
+            if expr is not None:
+              # Evaluate an expression.
+              if econtext is None:
+                # Lazily create the expression context.
+                if sci is None:
+                  sci = StateChangeInfo(
+                      ob, self, former_status, tdef,
+                      None, None, None)
+                econtext = createExprContext(sci)
+              value = expr(econtext)
+            status[id] = value
 
-            # Execute Before Commit
-            for script_name in tdef.before_commit_script_name:
-              transaction.get().addBeforeCommitHook(self._before_commit,
-                                                    (sci, script_name))
-
-            # Execute "activity" scripts
-            for script_name in tdef.activate_script_name:
-              self.activate(activity='SQLQueue')\
-                  .activeScript(script_name, ob.getRelativeUrl(),
-                                status, tdef.id)
+          sci = StateChangeInfo(
+                ob, self, former_status, tdef, None, None, kwargs=kw)
+          # Execute the "after" script.
+          for script_name in tdef.after_script_name:
+            script = self.scripts[script_name]
+            # Pass lots of info to the script in a single parameter.
+            script(sci)  # May throw an exception
+
+          # Execute Before Commit
+          for script_name in tdef.before_commit_script_name:
+            transaction.get().addBeforeCommitHook(self._before_commit,
+                                                  (sci, script_name))
+
+          # Execute "activity" scripts
+          for script_name in tdef.activate_script_name:
+            self.activate(activity='SQLQueue')\
+                .activeScript(script_name, ob.getRelativeUrl(),
+                              status, tdef.id)
 
     def _before_commit(self, sci, script_name):
       # check the object still exists before calling the script