diff --git a/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml b/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml
index 3fdaf94f4345e7ebe71a6102435a90db702ca421..d3c04b60c9d2717f1046015038c51f4ffd05783a 100644
--- a/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml
+++ b/bt5/erp5_invoicing/SkinTemplateItem/portal_skins/erp5_invoicing/InvoiceTransaction_postGeneration.xml
@@ -83,17 +83,19 @@ related_order = related_packing_list.getDefaultCausalityValue()\n
 \n
 # copy payment conditions from packing list\n
 # if missing, try to copy from order (for compatibility)\n
-payment_condition_copy_id_list = related_packing_list.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n
-if len(payment_condition_copy_id_list) > 0:\n
-  clipboard = related_packing_list.manage_copyObjects(\n
-    ids=payment_condition_copy_id_list)\n
-  invoice.manage_pasteObjects(clipboard)\n
-elif related_order is not None:\n
-  payment_condition_copy_id_list = related_order.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n
+if not invoice.contentValues(portal_type=\'Payment Condition\'):\n
+  payment_condition_copy_id_list = []\n
+  if related_packing_list is not None:\n
+    payment_condition_copy_id_list = related_packing_list.contentIds(filter={\'portal_type\':\'Payment Condition\'})\n
   if len(payment_condition_copy_id_list) > 0:\n
-    clipboard = related_order.manage_copyObjects(\n
-      ids=payment_condition_copy_id_list)\n
+    clipboard = related_packing_list.manage_copyObjects(ids=payment_condition_copy_id_list)\n
     invoice.manage_pasteObjects(clipboard)\n
+  elif related_order is not None:\n
+    payment_condition_copy_id_list = related_order.contentIds(\n
+      filter={\'portal_type\':\'Payment Condition\'})\n
+    if len(payment_condition_copy_id_list) > 0:\n
+      clipboard = related_order.manage_copyObjects(ids=payment_condition_copy_id_list)\n
+      invoice.manage_pasteObjects(clipboard)\n
 \n
 if related_order is not None:\n
   # copy trade condition:\n
diff --git a/bt5/erp5_invoicing/bt/change_log b/bt5/erp5_invoicing/bt/change_log
index 66f1f21fb4675bc027699f24fdac08e0564d19d1..ef605c213b8c0cb4d3df036bde347ad0604716e6 100644
--- a/bt5/erp5_invoicing/bt/change_log
+++ b/bt5/erp5_invoicing/bt/change_log
@@ -1,3 +1,6 @@
+2010-03-08 tatuya
+* Prevent to copy multiple payment conditions at the Delivery After Generation Script of Invoice Transaction. If the payment conditions are multiple, payment transaction builder manage to create too many payment transaction lines.
+
 2010-03-02 yusei
 * Remove short title.
 * Fix allowed content type setting.
diff --git a/bt5/erp5_invoicing/bt/revision b/bt5/erp5_invoicing/bt/revision
index d35d5f782448e98ccbcb1fa8e162c079cc627e52..0dbf139f8d1a85546880d56c8ff838638c454501 100644
--- a/bt5/erp5_invoicing/bt/revision
+++ b/bt5/erp5_invoicing/bt/revision
@@ -1 +1 @@
-347
\ No newline at end of file
+350
\ No newline at end of file