diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyBaseContributionFromResource.xml b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyBaseContributionFromResource.xml
index 0283156f7437cb6cf4b3531b1a846206d2439e24..9d90225506f4331438b527574173ddacd4ac0d40 100644
--- a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyBaseContributionFromResource.xml
+++ b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyBaseContributionFromResource.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-        <tuple/>
-      </tuple>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -57,7 +54,12 @@
 \n
 resource = movement.getResourceValue()\n
 if resource is not None:\n
-  movement.setBaseContributionList(resource.getBaseContributionList())\n
+  # if the movement already have a base contribution which is valid for this resource, don\'t change it\n
+  movement_base_contribution = movement.getBaseContribution()\n
+  if movement_base_contribution and movement_base_contribution in resource.getBaseContributionList():\n
+    return\n
+  # otherwise initialise to the default base contribution\n
+  movement.setBaseContribution(resource.getDefaultBaseContribution())\n
 </string> </value>
         </item>
         <item>
@@ -108,6 +110,7 @@ if resource is not None:\n
                             <string>_getattr_</string>
                             <string>resource</string>
                             <string>None</string>
+                            <string>movement_base_contribution</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyQuantityUnitFromResource.xml b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyQuantityUnitFromResource.xml
index ab40de43f6c48a26c195bef374458ef7f59cf0ee..595865de219b55b6cde52ec3d59829bfe8481962 100644
--- a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyQuantityUnitFromResource.xml
+++ b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyQuantityUnitFromResource.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-        <tuple/>
-      </tuple>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -57,6 +54,11 @@
 \n
 resource = movement.getResourceValue()\n
 if resource is not None:\n
+  # if the movement already have a quantity unit which is valid for this resource, don\'t change it\n
+  movement_quantity_unit = movement.getQuantityUnit()\n
+  if movement_quantity_unit and movement_quantity_unit in resource.getQuantityUnitList():\n
+    return\n
+  # otherwise initialise to the default quantity unit\n
   movement.setQuantityUnit(resource.getDefaultQuantityUnit())\n
 </string> </value>
         </item>
@@ -108,6 +110,7 @@ if resource is not None:\n
                             <string>_getattr_</string>
                             <string>resource</string>
                             <string>None</string>
+                            <string>movement_quantity_unit</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyUseFromResource.xml b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyUseFromResource.xml
index 22c0e9a3efb4789bf8cfc9100b9ae4b418424bac..090d4b4e34688a61d0525dc0d98b9a374d859e12 100644
--- a/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyUseFromResource.xml
+++ b/bt5/erp5_base/WorkflowTemplateItem/portal_workflow/movement_resource_interaction_workflow/scripts/Movement_copyUseFromResource.xml
@@ -2,10 +2,7 @@
 <ZopeData>
   <record id="1" aka="AAAAAAAAAAE=">
     <pickle>
-      <tuple>
-        <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-        <tuple/>
-      </tuple>
+      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
     </pickle>
     <pickle>
       <dictionary>
@@ -57,6 +54,11 @@
 \n
 resource = movement.getResourceValue()\n
 if resource is not None:\n
+  # if the movement already have a use which is valid for this resource, don\'t change it\n
+  movement_use = movement.getUse()\n
+  if movement_use and movement_use in resource.getUseList():\n
+    return\n
+  # otherwise initialise to the default use\n
   movement.setUse(resource.getDefaultUse())\n
 </string> </value>
         </item>
@@ -108,6 +110,7 @@ if resource is not None:\n
                             <string>_getattr_</string>
                             <string>resource</string>
                             <string>None</string>
+                            <string>movement_use</string>
                           </tuple>
                         </value>
                     </item>
diff --git a/bt5/erp5_base/bt/change_log b/bt5/erp5_base/bt/change_log
index 2a3ce6c923fe3b516839645a655aa2f27cf14a98..0ff4908ce8d185fe27809a3dc46ffdcc94889f1d 100644
--- a/bt5/erp5_base/bt/change_log
+++ b/bt5/erp5_base/bt/change_log
@@ -1,3 +1,6 @@
+2010-09-28 tatuya
+* Stop overwriting a value by movement_resource_interaraction_workflow when the categories are already set a valid value as the new resource.
+
 2010-09-28 tatuya
 * Previous commits(r38692,38707) were not solved the issue that movement_resource_interaction_workflow prevents the delivery buliding. So, revert them.
 
diff --git a/bt5/erp5_base/bt/revision b/bt5/erp5_base/bt/revision
index 0aa5559ec43f0adcc195ff1f3f4fb12e4aa1c42b..bbff031a29f577ecf9bb9e61a269b88e828da762 100644
--- a/bt5/erp5_base/bt/revision
+++ b/bt5/erp5_base/bt/revision
@@ -1 +1 @@
-866
\ No newline at end of file
+867
\ No newline at end of file