diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 283458ec333..99535d8f8aa 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -565,7 +565,7 @@
Opportunities Tree
crm.lead
-
+
diff --git a/openerp/workflow/instance.py b/openerp/workflow/instance.py
index 4987c4ad355..7baf6fddf88 100644
--- a/openerp/workflow/instance.py
+++ b/openerp/workflow/instance.py
@@ -52,7 +52,12 @@ class WorkflowInstance(object):
cr = self.session.cr
cr.execute("select * from wkf_workitem where inst_id=%s", (self.instance['id'],))
stack = []
- for work_item_values in cr.dictfetchall():
+ for i, work_item_values in enumerate(cr.dictfetchall()):
+ if i > 0:
+ # test if previous workitem has already processed this one
+ cr.execute("select id from wkf_workitem where id=%s", (work_item_values['id'],))
+ if not cr.fetchone():
+ continue
wi = WorkflowItem(self.session, self.record, work_item_values)
wi.process(signal=signal, force_running=force_running, stack=stack)
# An action is returned