diff --git a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/Delivery_Build.xml b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/Delivery_Build.xml
index 1683e8399c73238c506b62c676576c0f05a767c8..2fa7ad6e38a1c602c997d5de95157a30411cb11f 100644
--- a/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/Delivery_Build.xml
+++ b/bt5/erp5_accounting/WorkflowTemplateItem/portal_workflow/accounting_workflow/scripts/Delivery_Build.xml
@@ -79,14 +79,15 @@ if builder_by_ptype.has_key(delivery_portal_type) :\n
   if delivery_portal_type == \'Pay Sheet Transaction\':\n
     PRIORITY     = 3\n
     pay_sheet    = delivery\n
-    previous_tag = pay_sheet.getPath() + \'_firstUpdateAppliedRule\'\n
-    expand_tag   = pay_sheet.getPath() + \'_expand\'\n
+    path         = pay_sheet.getPath()\n
+    tag          = \'%s_updateAppliedRule\' % path\n
+    expand_tag   = \'%s_expand\' % path\n
     activate_kw  = { \'tag\'     : expand_tag\n
                    , \'priority\': PRIORITY\n
                    }\n
 \n
-    pay_sheet.activate( tag       = expand_tag\n
-                      , after_tag = previous_tag\n
+    pay_sheet.activate( tag       = tag\n
+                      , after_tag = expand_tag\n
                       , priority  = PRIORITY\n
                       ).updateAppliedRule( rule_reference = \'default_invoice_rule\'\n
                                          , activate_kw = activate_kw\n
@@ -119,10 +120,10 @@ if builder_by_ptype.has_key(delivery_portal_type) :\n
   build_trade_model_tag = \'invoice_transaction_build_trade_model_%s\' % \\\n
                                  delivery.getRelativeUrl()\n
   build_accounting_tag = \'invoice_transaction_build_accounting_%s\' % delivery.getRelativeUrl()\n
-  update_applied_rule_tag = \'%s_updateAppliedRule\' % delivery.getPath()\n
+  expand_tag = \'%s_expand\' % delivery.getPath()\n
   builder.activate(\n
       activity=\'SQLQueue\',\n
-      after_tag=(update_applied_rule_tag,\n
+      after_tag=(expand_tag,\n
                  build_trade_model_tag,),\n
       tag=build_accounting_tag,\n
       activate_kw=dict(tag=build_accounting_tag)).build(\n
@@ -133,7 +134,7 @@ if builder_by_ptype.has_key(delivery_portal_type) :\n
   portal_deliveries.payment_transaction_builder.activate(\n
                       activity=\'SQLQueue\',\n
                       after_tag=( build_trade_model_tag,\n
-                                  update_applied_rule_tag,\n
+                                  expand_tag,\n
                                   build_accounting_tag, ),\n
                       ).build(\n
                           explanation_uid=explanation_uid_list)\n
@@ -194,7 +195,8 @@ if builder_by_ptype.has_key(delivery_portal_type) :\n
                             <string>builder</string>
                             <string>PRIORITY</string>
                             <string>pay_sheet</string>
-                            <string>previous_tag</string>
+                            <string>path</string>
+                            <string>tag</string>
                             <string>expand_tag</string>
                             <string>activate_kw</string>
                             <string>explanation_uid_list</string>
@@ -202,7 +204,6 @@ if builder_by_ptype.has_key(delivery_portal_type) :\n
                             <string>order</string>
                             <string>build_trade_model_tag</string>
                             <string>build_accounting_tag</string>
-                            <string>update_applied_rule_tag</string>
                             <string>dict</string>
                           </tuple>
                         </value>
diff --git a/bt5/erp5_accounting/bt/change_log b/bt5/erp5_accounting/bt/change_log
index af8e22a38a3a1ced5e6beefd53838817b99124d8..24674a96eeaa2e9ff1c3f53b476af2b1b0c3e6be 100644
--- a/bt5/erp5_accounting/bt/change_log
+++ b/bt5/erp5_accounting/bt/change_log
@@ -1,3 +1,6 @@
+2010-05-24 kazuhiko
+* Improve activity dependencies for Delivery_updateAppliedRule, eg. delivery.activate(tag='(path)_updateAppliedRule', after_tag='(path)_expand').Delivery_updateAppliedRule(activate_kw={'tag':'(path)_expand'})
+
 2010-05-05 J茅rome
 * Add an action to add create an initial balance transaction, from an accounting period.
 
diff --git a/bt5/erp5_accounting/bt/revision b/bt5/erp5_accounting/bt/revision
index 847dd1814fe0399cbadfa4a24e1e09cd45b60e91..4dedbee182358751a3ca672052b0f69e62a5bcfa 100644
--- a/bt5/erp5_accounting/bt/revision
+++ b/bt5/erp5_accounting/bt/revision
@@ -1 +1 @@
-1213
\ No newline at end of file
+1214
\ No newline at end of file
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_simulation_interaction_workflow/scripts/Delivery_reindexRelatedSimulationMovement.xml b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_simulation_interaction_workflow/scripts/Delivery_reindexRelatedSimulationMovement.xml
index bcbbb1f4d1ebb8ae02e0b3c69885079a55f46d34..3b94970ef11ec341ae89dc4f889d64b1e9d10097 100644
--- a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_simulation_interaction_workflow/scripts/Delivery_reindexRelatedSimulationMovement.xml
+++ b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/delivery_simulation_interaction_workflow/scripts/Delivery_reindexRelatedSimulationMovement.xml
@@ -72,7 +72,7 @@ because that delivery builder builds after that tag.\n
 """\n
 \n
 delivery = state_change[\'object\']\n
-tag = \'%s_updateAppliedRule\' % delivery.getPath()\n
+tag = \'%s_expand\' % delivery.getPath()\n
 delivery.applyToDeliveryRelatedMovement(method_id=\'recursiveReindexObject\',\n
                                         activate_kw=dict(tag=tag))\n
 </string> </value>
diff --git a/bt5/erp5_base/bt/change_log b/bt5/erp5_base/bt/change_log
index 77768de2f943147e7fad48daf17e7512d31f55cf..4594445aa346ebd47def537b0aa4a14395739ee2 100644
--- a/bt5/erp5_base/bt/change_log
+++ b/bt5/erp5_base/bt/change_log
@@ -1,3 +1,6 @@
+2010-05-24 kazuhiko
+* Improve activity dependencies for Delivery_updateAppliedRule, eg. delivery.activate(tag='(path)_updateAppliedRule', after_tag='(path)_expand').Delivery_updateAppliedRule(activate_kw={'tag':'(path)_expand'})
+
 2010-05-20 kazuhiko
 * Add checkboxes for force_update property of Property Movement Group and Category Movement Group.
 
diff --git a/bt5/erp5_base/bt/revision b/bt5/erp5_base/bt/revision
index b02454449c8cae01aa9a1ce93c15cd4c90e8a117..66079bda3a7a6fc0aa17ca480fbb175077e6d0ad 100644
--- a/bt5/erp5_base/bt/revision
+++ b/bt5/erp5_base/bt/revision
@@ -1 +1 @@
-749
\ No newline at end of file
+750
\ No newline at end of file
diff --git a/bt5/erp5_bpm/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml b/bt5/erp5_bpm/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
index 1524d592dcba1142085e6a77f95d0c1022d91c63..79619c77ec0b36fc7ddf8dac76f532864f80aaa0 100644
--- a/bt5/erp5_bpm/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
+++ b/bt5/erp5_bpm/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
@@ -57,27 +57,31 @@
 \n
 activate_kw = {}\n
 related_order = packing_list.getCausalityValue()\n
-after_tag_list = []\n
+path = packing_list.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag,\'priority\':3}\n
+after_tag_list = [expand_tag]\n
 if related_order is not None:\n
-  after_tag_list.append(related_order.getPath() + \'_firstUpdateAppliedRule\')\n
-  after_tag_list.append(related_order.getPath() + \'_expand\')\n
-tag = packing_list.getPath()+\'_expand\'\n
-activate_kw = {\'tag\':tag,\'priority\':3}\n
+  # XXX is it really required?\n
+  after_tag_list.append(\'%s_expand\' % related_order.getPath())\n
 \n
 packing_list.activate(after_tag=after_tag_list,\n
                       tag=tag,\n
-                      priority=3).updateAppliedRule(rule_reference=packing_list.getRuleReference(),\n
-                                                    activate_kw=activate_kw)\n
+                      priority=3).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 \n
 \n
 # Make sure to reindex related simulation movement if we are already\n
 # simulated, call reindexObject, not immediateReindexObject so that\n
 # catalogObjectList will be called with many objects\n
+# XXX is it really required?\n
 packing_list.activate(after_tag=after_tag_list,\n
                       tag=tag,\n
                       priority=3).applyToDeliveryRelatedMovement(method_id=\'reindexObject\')\n
 \n
-packing_list.startBuilding()\n
+if packing_list.getCausalityState() == \'draft\':\n
+  packing_list.startBuilding()\n
+# XXX is it really required?\n
 packing_list.activate(\n
   after_tag = tag,\n
 ).updateCausalityState()\n
@@ -124,9 +128,11 @@ packing_list.activate(\n
                             <string>activate_kw</string>
                             <string>_getattr_</string>
                             <string>related_order</string>
+                            <string>path</string>
+                            <string>tag</string>
+                            <string>expand_tag</string>
                             <string>after_tag_list</string>
                             <string>None</string>
-                            <string>tag</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_bpm/bt/change_log b/bt5/erp5_bpm/bt/change_log
index 3cc88e14028a24e61ebcb4001798819cae1e0b57..372651a203d029223644c3c6ff968263f3405ec3 100644
--- a/bt5/erp5_bpm/bt/change_log
+++ b/bt5/erp5_bpm/bt/change_log
@@ -1,3 +1,6 @@
+2010-05-24 kazuhiko
+* Improve activity dependencies for Delivery_updateAppliedRule, eg. delivery.activate(tag='(path)_updateAppliedRule', after_tag='(path)_expand').Delivery_updateAppliedRule(activate_kw={'tag':'(path)_expand'})
+
 2009-07-02 luke
 * change purpose of this business template
 
diff --git a/bt5/erp5_bpm/bt/revision b/bt5/erp5_bpm/bt/revision
index 99bc3d518639f3433852c803ea7199085b6616cb..dd4a90065ceb3d30cc38d69c0e85d96466c90bd1 100644
--- a/bt5/erp5_bpm/bt/revision
+++ b/bt5/erp5_bpm/bt/revision
@@ -1 +1 @@
-253
\ No newline at end of file
+254
\ No newline at end of file
diff --git a/bt5/erp5_mrp/WorkflowTemplateItem/portal_workflow/production_packing_list_workflow/scripts/PackingList_updateAppliedRule.xml b/bt5/erp5_mrp/WorkflowTemplateItem/portal_workflow/production_packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
index cc2ffa14c00eddf7e515cb8bf5254349d023b759..79619c77ec0b36fc7ddf8dac76f532864f80aaa0 100644
--- a/bt5/erp5_mrp/WorkflowTemplateItem/portal_workflow/production_packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
+++ b/bt5/erp5_mrp/WorkflowTemplateItem/portal_workflow/production_packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
@@ -57,24 +57,31 @@
 \n
 activate_kw = {}\n
 related_order = packing_list.getCausalityValue()\n
-after_tag_list = []\n
+path = packing_list.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag,\'priority\':3}\n
+after_tag_list = [expand_tag]\n
 if related_order is not None:\n
-  after_tag_list.append(related_order.getPath() + \'_firstUpdateAppliedRule\')\n
-  after_tag_list.append(related_order.getPath() + \'_expand\')\n
-tag = packing_list.getPath()+\'_expand\'\n
-activate_kw = {\'tag\':tag,\'priority\':3}\n
+  # XXX is it really required?\n
+  after_tag_list.append(\'%s_expand\' % related_order.getPath())\n
 \n
-packing_list.activate(after_tag=after_tag_list,tag=tag,\n
-    priority=3).updateAppliedRule(rule_reference=\'default_delivery_rule\',activate_kw=activate_kw)\n
+packing_list.activate(after_tag=after_tag_list,\n
+                      tag=tag,\n
+                      priority=3).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 \n
 \n
 # Make sure to reindex related simulation movement if we are already\n
 # simulated, call reindexObject, not immediateReindexObject so that\n
 # catalogObjectList will be called with many objects\n
-packing_list.activate(after_tag=after_tag_list,tag=tag,\n
-     priority=3).applyToDeliveryRelatedMovement(method_id=\'reindexObject\')\n
+# XXX is it really required?\n
+packing_list.activate(after_tag=after_tag_list,\n
+                      tag=tag,\n
+                      priority=3).applyToDeliveryRelatedMovement(method_id=\'reindexObject\')\n
 \n
-packing_list.startBuilding()\n
+if packing_list.getCausalityState() == \'draft\':\n
+  packing_list.startBuilding()\n
+# XXX is it really required?\n
 packing_list.activate(\n
   after_tag = tag,\n
 ).updateCausalityState()\n
@@ -121,9 +128,11 @@ packing_list.activate(\n
                             <string>activate_kw</string>
                             <string>_getattr_</string>
                             <string>related_order</string>
+                            <string>path</string>
+                            <string>tag</string>
+                            <string>expand_tag</string>
                             <string>after_tag_list</string>
                             <string>None</string>
-                            <string>tag</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_mrp/bt/change_log b/bt5/erp5_mrp/bt/change_log
index 5ed38b79bc89542fea3b71a063d25ad0d845ee54..c1fc906a78e292898aa3c40490fdc3ff2538f3e0 100644
--- a/bt5/erp5_mrp/bt/change_log
+++ b/bt5/erp5_mrp/bt/change_log
@@ -1,3 +1,6 @@
+2010-05-24 kazuhiko
+* Improve activity dependencies for Delivery_updateAppliedRule, eg. delivery.activate(tag='(path)_updateAppliedRule', after_tag='(path)_expand').Delivery_updateAppliedRule(activate_kw={'tag':'(path)_expand'})
+
 2010-03-02 yusei
 * Remove short title.
 
diff --git a/bt5/erp5_mrp/bt/revision b/bt5/erp5_mrp/bt/revision
index ce163e7b6b4b7eef56c4445149326a929a7a7e3e..2ae9f6c7cb0c0df9f4a24d37ce337efa56c061b7 100644
--- a/bt5/erp5_mrp/bt/revision
+++ b/bt5/erp5_mrp/bt/revision
@@ -1 +1 @@
-440
\ No newline at end of file
+441
\ No newline at end of file
diff --git a/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_report_workflow/scripts/PackingList_updateAppliedRule.xml b/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_report_workflow/scripts/PackingList_updateAppliedRule.xml
index e989af080aa2a0816d059db51d82d9d2cc412f95..79619c77ec0b36fc7ddf8dac76f532864f80aaa0 100644
--- a/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_report_workflow/scripts/PackingList_updateAppliedRule.xml
+++ b/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_report_workflow/scripts/PackingList_updateAppliedRule.xml
@@ -53,32 +53,35 @@
         </item>
         <item>
             <key> <string>_body</string> </key>
-            <value> <string>LOG=lambda msg:context.log("PackingList_updateAppliedRule", msg)\n
-LOG=lambda msg:\'DISABLED\'\n
-\n
-packing_list = state_change[\'object\']\n
-\n
+            <value> <string>packing_list = state_change[\'object\']\n
 \n
 activate_kw = {}\n
 related_order = packing_list.getCausalityValue()\n
-after_tag_list = []\n
+path = packing_list.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag,\'priority\':3}\n
+after_tag_list = [expand_tag]\n
 if related_order is not None:\n
-  after_tag_list.append(related_order.getPath() + \'_firstUpdateAppliedRule\')\n
-  after_tag_list.append(related_order.getPath() + \'_expand\')\n
-tag = packing_list.getPath()+\'_expand\'\n
-activate_kw = {\'tag\':tag,\'priority\':3}\n
+  # XXX is it really required?\n
+  after_tag_list.append(\'%s_expand\' % related_order.getPath())\n
 \n
-packing_list.activate(after_tag=after_tag_list,tag=tag,\n
-    priority=3).updateAppliedRule(rule_reference=\'default_delivery_rule\', activate_kw=activate_kw)\n
+packing_list.activate(after_tag=after_tag_list,\n
+                      tag=tag,\n
+                      priority=3).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 \n
 \n
 # Make sure to reindex related simulation movement if we are already\n
 # simulated, call reindexObject, not immediateReindexObject so that\n
 # catalogObjectList will be called with many objects\n
-packing_list.activate(after_tag=after_tag_list,tag=tag,\n
-     priority=3).applyToDeliveryRelatedMovement(method_id=\'reindexObject\')\n
+# XXX is it really required?\n
+packing_list.activate(after_tag=after_tag_list,\n
+                      tag=tag,\n
+                      priority=3).applyToDeliveryRelatedMovement(method_id=\'reindexObject\')\n
 \n
-packing_list.startBuilding()\n
+if packing_list.getCausalityState() == \'draft\':\n
+  packing_list.startBuilding()\n
+# XXX is it really required?\n
 packing_list.activate(\n
   after_tag = tag,\n
 ).updateCausalityState()\n
@@ -120,15 +123,16 @@ packing_list.activate(\n
                           <tuple>
                             <string>state_change</string>
                             <string>kw</string>
-                            <string>LOG</string>
                             <string>_getitem_</string>
                             <string>packing_list</string>
                             <string>activate_kw</string>
                             <string>_getattr_</string>
                             <string>related_order</string>
+                            <string>path</string>
+                            <string>tag</string>
+                            <string>expand_tag</string>
                             <string>after_tag_list</string>
                             <string>None</string>
-                            <string>tag</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_buildTaskReport.xml b/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_buildTaskReport.xml
index b3a422bd986e660508f3a465fda8132c3953ac89..e388ae25a970c6d65496adebcc70d0ff769847d1 100644
--- a/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_buildTaskReport.xml
+++ b/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_buildTaskReport.xml
@@ -55,10 +55,12 @@
             <key> <string>_body</string> </key>
             <value> <string>task = state_change[\'object\']\n
 \n
-previous_tag = task.getPath() + \'_firstUpdateAppliedRule\'\n
-expand_tag = task.getPath() + \'_expand\'\n
-activate_kw = {\'tag\':expand_tag,\'priority\':3}\n
-task.activate(tag=expand_tag,after_tag=previous_tag).updateAppliedRule(rule_reference = \'default_order_rule\',activate_kw=activate_kw)\n
+path = task.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag, \'priority\':3}\n
+\n
+task.activate(tag=tag, after_tag=expand_tag).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 \n
 delivery_builder = task.portal_deliveries.task_report_builder\n
 delivery_builder.activate(activity=\'SQLQueue\',after_tag=expand_tag).build(explanation_uid=task.getUid())\n
@@ -102,7 +104,8 @@ delivery_builder.activate(activity=\'SQLQueue\',after_tag=expand_tag).build(expl
                             <string>_getitem_</string>
                             <string>task</string>
                             <string>_getattr_</string>
-                            <string>previous_tag</string>
+                            <string>path</string>
+                            <string>tag</string>
                             <string>expand_tag</string>
                             <string>activate_kw</string>
                             <string>delivery_builder</string>
diff --git a/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_createOrderRule.xml b/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_createOrderRule.xml
index 2067d3b2f51d9a9f13498b4b3b0cf2834ccf68c6..1dbe079dc0f8ce5cc9081f496fe5da481f833e37 100644
--- a/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_createOrderRule.xml
+++ b/bt5/erp5_project/WorkflowTemplateItem/portal_workflow/task_workflow/scripts/Task_createOrderRule.xml
@@ -55,9 +55,12 @@
             <key> <string>_body</string> </key>
             <value> <string>task = state_change[\'object\']\n
 \n
-tag = task.getPath() + \'_firstUpdateAppliedRule\'\n
-activate_kw = {\'tag\':tag,\'priority\':3}\n
-task.activate(tag=tag).updateAppliedRule(rule_reference = \'default_order_rule\',activate_kw=activate_kw)\n
+path = task.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag, \'priority\':3}\n
+\n
+task.activate(tag=tag, after_tag=expand_tag).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 </string> </value>
         </item>
         <item>
@@ -99,7 +102,9 @@ task.activate(tag=tag).updateAppliedRule(rule_reference = \'default_order_rule\'
                             <string>_getitem_</string>
                             <string>task</string>
                             <string>_getattr_</string>
+                            <string>path</string>
                             <string>tag</string>
+                            <string>expand_tag</string>
                             <string>activate_kw</string>
                           </tuple>
                         </value>
diff --git a/bt5/erp5_project/bt/change_log b/bt5/erp5_project/bt/change_log
index da01e696e711003e4f4a77672221d5f987c4d2c8..ebd4416585aef5f97ff0d2c9b5f6d984f5740334 100644
--- a/bt5/erp5_project/bt/change_log
+++ b/bt5/erp5_project/bt/change_log
@@ -1,3 +1,6 @@
+2010-05-24 kazuhiko
+* Improve activity dependencies for Delivery_updateAppliedRule, eg. delivery.activate(tag='(path)_updateAppliedRule', after_tag='(path)_expand').Delivery_updateAppliedRule(activate_kw={'tag':'(path)_expand'})
+
 2010-04-09 kazuhiko
 * Make it possible to sort/search on Project Module view.
 * Allow Assignor to update validated Projects.
diff --git a/bt5/erp5_project/bt/revision b/bt5/erp5_project/bt/revision
index d6ee760bad3d1421bf9759d292d09f786ec13e54..475fbacb43f1e37932f5cd9aa9ba871e283891c2 100644
--- a/bt5/erp5_project/bt/revision
+++ b/bt5/erp5_project/bt/revision
@@ -1 +1 @@
-762
\ No newline at end of file
+763
\ No newline at end of file
diff --git a/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_buildPackingList.xml b/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_buildPackingList.xml
index 7ed075520896318d6c56f2c434194ed8097da249..341ba15a49e90e735bcf1120e72bc94c97970320 100644
--- a/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_buildPackingList.xml
+++ b/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_buildPackingList.xml
@@ -55,12 +55,12 @@
             <key> <string>_body</string> </key>
             <value> <string>order = state_change[\'object\']\n
 \n
-previous_tag = order.getPath() + \'_firstUpdateAppliedRule\'\n
-expand_tag = order.getPath() + \'_expand\'\n
-activate_kw = {\'tag\':expand_tag,\'priority\':3}\n
-order.activate(tag=expand_tag, after_tag=previous_tag).updateAppliedRule(\n
-             rule_reference=\'default_order_rule\', activate_kw=activate_kw)\n
+path = order.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag, \'priority\':3}\n
 \n
+order.activate(tag=tag, after_tag=expand_tag).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 \n
 order_portal_type = order.getPortalType()\n
 builder_dict = {\n
@@ -111,7 +111,8 @@ delivery_builder.activate(activity=\'SQLQueue\',after_tag=expand_tag).build(expl
                             <string>_getitem_</string>
                             <string>order</string>
                             <string>_getattr_</string>
-                            <string>previous_tag</string>
+                            <string>path</string>
+                            <string>tag</string>
                             <string>expand_tag</string>
                             <string>activate_kw</string>
                             <string>order_portal_type</string>
diff --git a/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_createOrderRule.xml b/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_createOrderRule.xml
index 6cd4f91af7481c4e43b2f99edd0716839c5915c7..4adc25fee91409fca20abec49e352b4c8783c586 100644
--- a/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_createOrderRule.xml
+++ b/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/order_workflow/scripts/Order_createOrderRule.xml
@@ -55,10 +55,12 @@
             <key> <string>_body</string> </key>
             <value> <string>order = state_change[\'object\']\n
 \n
-tag = order.getPath() + \'_firstUpdateAppliedRule\'\n
-activate_kw = {\'tag\':tag,\'priority\':3}\n
-order.activate(tag=tag).updateAppliedRule(rule_reference=\'default_order_rule\',\n
-                                          activate_kw=activate_kw)\n
+path = order.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag, \'priority\':3}\n
+\n
+order.activate(tag=tag, after_tag=expand_tag).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 </string> </value>
         </item>
         <item>
@@ -100,7 +102,9 @@ order.activate(tag=tag).updateAppliedRule(rule_reference=\'default_order_rule\',
                             <string>_getitem_</string>
                             <string>order</string>
                             <string>_getattr_</string>
+                            <string>path</string>
                             <string>tag</string>
+                            <string>expand_tag</string>
                             <string>activate_kw</string>
                           </tuple>
                         </value>
diff --git a/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml b/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
index 67c8f188c25546d5991bc79665bb0de164a87fc2..79619c77ec0b36fc7ddf8dac76f532864f80aaa0 100644
--- a/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
+++ b/bt5/erp5_trade/WorkflowTemplateItem/portal_workflow/packing_list_workflow/scripts/PackingList_updateAppliedRule.xml
@@ -57,27 +57,31 @@
 \n
 activate_kw = {}\n
 related_order = packing_list.getCausalityValue()\n
-after_tag_list = []\n
+path = packing_list.getPath()\n
+tag = \'%s_updateAppliedRule\' % path\n
+expand_tag = \'%s_expand\' % path\n
+activate_kw = {\'tag\':expand_tag,\'priority\':3}\n
+after_tag_list = [expand_tag]\n
 if related_order is not None:\n
-  after_tag_list.append(related_order.getPath() + \'_firstUpdateAppliedRule\')\n
-  after_tag_list.append(related_order.getPath() + \'_expand\')\n
-tag = packing_list.getPath()+\'_expand\'\n
-activate_kw = {\'tag\':tag,\'priority\':3}\n
+  # XXX is it really required?\n
+  after_tag_list.append(\'%s_expand\' % related_order.getPath())\n
 \n
 packing_list.activate(after_tag=after_tag_list,\n
                       tag=tag,\n
-                      priority=3).updateAppliedRule(rule_reference=\'default_delivery_rule\',\n
-                                                    activate_kw=activate_kw)\n
+                      priority=3).Delivery_updateAppliedRule(activate_kw=activate_kw)\n
 \n
 \n
 # Make sure to reindex related simulation movement if we are already\n
 # simulated, call reindexObject, not immediateReindexObject so that\n
 # catalogObjectList will be called with many objects\n
+# XXX is it really required?\n
 packing_list.activate(after_tag=after_tag_list,\n
                       tag=tag,\n
                       priority=3).applyToDeliveryRelatedMovement(method_id=\'reindexObject\')\n
 \n
-packing_list.startBuilding()\n
+if packing_list.getCausalityState() == \'draft\':\n
+  packing_list.startBuilding()\n
+# XXX is it really required?\n
 packing_list.activate(\n
   after_tag = tag,\n
 ).updateCausalityState()\n
@@ -124,9 +128,11 @@ packing_list.activate(\n
                             <string>activate_kw</string>
                             <string>_getattr_</string>
                             <string>related_order</string>
+                            <string>path</string>
+                            <string>tag</string>
+                            <string>expand_tag</string>
                             <string>after_tag_list</string>
                             <string>None</string>
-                            <string>tag</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_trade/bt/change_log b/bt5/erp5_trade/bt/change_log
index 9f54eff38a9ea067e392bf38c2e9ac47c7e7dc92..4392362867a0e94e69274fa5afbead782aaae973 100644
--- a/bt5/erp5_trade/bt/change_log
+++ b/bt5/erp5_trade/bt/change_log
@@ -1,3 +1,6 @@
+2010-05-24 kazuhiko
+* Improve activity dependencies for Delivery_updateAppliedRule, eg. delivery.activate(tag='(path)_updateAppliedRule', after_tag='(path)_expand').Delivery_updateAppliedRule(activate_kw={'tag':'(path)_expand'})
+
 2010-05-24 yusei
 * Update Movement_getUseItemList. Add an empty select option to the result.
 
diff --git a/bt5/erp5_trade/bt/revision b/bt5/erp5_trade/bt/revision
index 5f97bf2507d15d389ba55c5748c81fa5f020e848..b475567cd6f2263e95aa1ffc4106e9c13567e555 100644
--- a/bt5/erp5_trade/bt/revision
+++ b/bt5/erp5_trade/bt/revision
@@ -1 +1 @@
-944
\ No newline at end of file
+945
\ No newline at end of file