diff --git a/product/ERP5/Tool/WorkflowTool.py b/product/ERP5/Tool/WorkflowTool.py
index 209a1b03cad739632493d31d0f9555ead903c83a..05a451607f277d0d19bcdb758f4d6a4b5b4cc99c 100644
--- a/product/ERP5/Tool/WorkflowTool.py
+++ b/product/ERP5/Tool/WorkflowTool.py
@@ -193,20 +193,20 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool):
     """ Return a list of workflows bound to selected portal_type, this workflow
         list may contain both DC Workflow and Workflow.
     """
-    portal_type = self.getPortalObject().getDefaultModule(portal_type="portal_types")._getOb(portal_type_id, None)
+    portal_type = self.getPortalObject().portal_types._getOb(portal_type_id, None)
     workflow_list = []
     if portal_type is not None:
       # checking Workflow assignment:
       for workflow_id in portal_type.getTypeWorkflowList():
         workflow_list.append(self._getOb(workflow_id))
 
-      for wf_id in self.getChainFor(portal_type_id):
-        wf = self.getWorkflowById(wf_id)
-        if wf is not None:
-          workflow_list.append(wf)
+    for wf_id in self.getChainFor(portal_type_id):
+      wf = self.getWorkflowById(wf_id)
+      if wf is not None:
+        workflow_list.append(wf)
     return workflow_list
 
-  #getWorkflowsFor = getWorkflowValueListFor
+  getWorkflowsFor = getWorkflowValueListFor
 
   security.declarePrivate('getHistoryOf')
   def getHistoryOf(self, wf_id, ob):
@@ -698,9 +698,8 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool):
     document_pt = document.getTypeInfo()
 
     if document_pt is not None:
-      workflow_list = self.getWorkflowValueListFor(document.getPortalType())
+      workflow_list = document_pt.getTypeWorkflowList()
       for wf in workflow_list:
-        LOG("Check workflow '%s' action list"%wf.id,WARNING," in WorkflowTool.py 705")
         wf_id = wf.getReference()
         did[wf_id] = None
         wf = self.getPortalObject().portal_workflow._getOb(wf_id, None)
@@ -713,6 +712,17 @@ class WorkflowTool(BaseTool, OriginalWorkflowTool):
         if a is not None:
           worklist_dict[wf_id] = a
 
+    for wf_id in chain:
+      did[wf_id] = None
+      wf = self.getWorkflowById(wf_id)
+      if wf is not None:
+        a = wf.listObjectActions(info)
+        if a is not None:
+          actions.extend(a)
+        a = wf.getWorklistVariableMatchDict(info)
+        if a is not None:
+          worklist_dict[wf_id] = a
+
     wf_ids = self.getWorkflowIds()
     for wf_id in wf_ids:
       if not did.has_key(wf_id):