Index: branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php	(revision 20335)
+++ branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php	(revision 20415)
@@ -683,7 +683,8 @@
         if (SC_Utils_Ex::isBlank($product_class_id)) {
             $product_class_id = $objFormParam->getValue('edit_product_class_id');
-        }
-
-        // フォームの内容を更新
+            $changed_no = $objFormParam->getValue('no');
+        }
+
+        // 選択済みの商品であれば数量を1増やす
         $exists = false;
         $arrExistsProductClassIds = $objFormParam->getValue('product_class_id');
@@ -699,4 +700,5 @@
 
         // 新しく商品を追加した場合はフォームに登録
+        // 商品を変更した場合は、該当行を変更
         if (!$exists) {
             $objProduct = new SC_Product();
@@ -713,7 +715,14 @@
             foreach ($arrUpdateKeys as $key) {
                 $arrValues = $objFormParam->getValue($key);
-                $arrValues[] = $arrProduct[$key];
+                if (isset($changed_no)) {
+                    $arrValues[$changed_no] = $arrProduct[$key];
+                } else {
+                    $arrValues[] = $arrProduct[$key];
+                }
                 $objFormParam->setValue($key, $arrValues);
             }
+        } elseif (isset($changed_no)) {
+            // 変更したが、既に選択していた場合は、
+            $this->doDeleteProduct($changed_no, $objFormParam);
         }
     }
