diff --git a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckDelivery_generateCheckDetailInputDialog.xml b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckDelivery_generateCheckDetailInputDialog.xml
index ba28df2bb8d89f137959dd6c69ac789e0b040e33..72e14b93538dd2fa4df3b47d9abd4d2549966af4 100644
--- a/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckDelivery_generateCheckDetailInputDialog.xml
+++ b/bt5/erp5_banking_check/SkinTemplateItem/portal_skins/erp5_banking_check_operation/CheckDelivery_generateCheckDetailInputDialog.xml
@@ -106,14 +106,15 @@ def generate_error(listbox_line, column_title, error_message):\n
 # listbox is not passed at the first time when this script is called.\n
 # when the user clicks on the Update button, listbox is passed, and\n
 # the contents must be preserved in the form.\n
+new_listbox = []\n
 if listbox in (None,()) or (previous_resource not in(\'\',None) and previous_resource!=resource):\n
-  listbox = []\n
   for i in range(0,10):\n
     #listbox.append({\'quantity\':1,\'uid\':\'new_%03i\' % i})\n
-    listbox.append({\'quantity\':1})\n
+    new_listbox.append({\'quantity\':1})\n
 \n
 else:\n
   for line in listbox:\n
+    new_listbox.append(line) # Add line from the begining. All changes in the loop will apply to the appended object (pointer).\n
     destination_payment_reference = line.get(\'destination_payment_reference\',None)\n
     reference_range_min = line.get(\'reference_range_min\',None)\n
     reference_range_max = line.get(\'reference_range_max\',None)\n
@@ -121,8 +122,19 @@ else:\n
     quantity = int(line.get(\'quantity\',0))\n
     if item_model.isFixedPrice():\n
       if quantity > 1:\n
-        message = \'You must define one by one in this case\'\n
-        generate_error(line,\'quantity\',message)\n
+        try:\n
+          if len(reference_range_min) != 10:\n
+            raise ValueError, \'Reference must be 10 char long.\'\n
+          reference_numeric_part = int(reference_range_min[4:])\n
+        except ValueError, message:\n
+          generate_error(line, \'reference_range_min\', \'Reference format unrecognized: %s\' % (message, ))\n
+        else:\n
+          reference_prefix = reference_range_min[:4]\n
+          line[\'quantity\'] = 1\n
+          for increment in xrange(quantity):\n
+            new_line = line.copy()\n
+            new_line[\'reference_range_min\'] = \'%s%06d\' % (reference_prefix, reference_numeric_part + increment + 1)\n
+            new_listbox.append(new_line)\n
     if destination_payment_reference not in (None,\'\'):\n
       account_list = [x.getObject() for x in\n
                       context.portal_catalog(portal_type=\'Bank Account\',\n
@@ -175,10 +187,14 @@ else:\n
           generate_error(line,\'reference_range_min\',message)\n
           generate_error(line,\'reference_range_max\',message)\n
 \n
+# Update all listbox_keys\n
+for line_index in xrange(len(new_listbox)):\n
+  new_listbox[line_index][\'listbox_key\'] = \'%03d\' % (line_index, )\n
+\n
 if batch_mode:\n
   return error_value\n
 else:\n
-  context.Base_updateDialogForm(listbox=listbox\n
+  context.Base_updateDialogForm(listbox=new_listbox\n
                              , portal_type = context.getPortalType()\n
                              , resource=resource\n
                              , previous_resource=resource\n
@@ -261,6 +277,7 @@ else:\n
                             <string>error_value</string>
                             <string>field_error_dict</string>
                             <string>generate_error</string>
+                            <string>new_listbox</string>
                             <string>_getiter_</string>
                             <string>range</string>
                             <string>i</string>
@@ -271,21 +288,27 @@ else:\n
                             <string>check_amount</string>
                             <string>int</string>
                             <string>quantity</string>
+                            <string>len</string>
+                            <string>ValueError</string>
+                            <string>_getitem_</string>
+                            <string>reference_numeric_part</string>
                             <string>message</string>
+                            <string>reference_prefix</string>
+                            <string>_write_</string>
+                            <string>xrange</string>
+                            <string>increment</string>
+                            <string>new_line</string>
                             <string>append</string>
                             <string>$append0</string>
                             <string>x</string>
                             <string>account_list</string>
-                            <string>len</string>
-                            <string>_getitem_</string>
                             <string>account</string>
-                            <string>_write_</string>
                             <string>destination_trade</string>
                             <string>check_quantity</string>
                             <string>check_reference</string>
-                            <string>ValueError</string>
                             <string>check_amount_relative_url</string>
                             <string>check_amount_value</string>
+                            <string>line_index</string>
                             <string>_apply_</string>
                           </tuple>
                         </value>
diff --git a/bt5/erp5_banking_check/bt/revision b/bt5/erp5_banking_check/bt/revision
index 24af08a4875794564c5895aa8c9b664b2c78effe..eaf7a13d15e02e082b62c96f10b881336ece332c 100644
--- a/bt5/erp5_banking_check/bt/revision
+++ b/bt5/erp5_banking_check/bt/revision
@@ -1 +1 @@
-83
\ No newline at end of file
+87
\ No newline at end of file