Index: branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(revision 19912)
+++ branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(revision 19920)
@@ -195,9 +195,9 @@
         case 'customer_addr':
             $sqlval = array();
+            $sqlval['deliv_id'] = $objPurchase->getDeliv($this->cartKey);
             // 会員登録住所がチェックされている場合
             if ($_POST['deliv_check'] == '-1') {
                 // 会員情報の住所を受注一時テーブルに書き込む
                 $objPurchase->copyFromCustomer($sqlval, $objCustomer, 'shipping');
-                $sqlval['deliv_id'] = $objPurchase->getDeliv($this->cartKey);
                 $objPurchase->saveShippingTemp($sqlval);
                 $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer);
@@ -211,15 +211,12 @@
             } elseif($_POST['deliv_check'] >= 1) {
                 if (SC_Utils_Ex::sfIsInt($_POST['deliv_check'])) {
-                    $deliv_count = $objQuery->count("dtb_other_deliv","customer_id=? and other_deliv_id = ?" ,array($objCustomer->getValue('customer_id'), $_POST['deliv_check']));
-                    if ($deliv_count != 1) {
+                    $otherDeliv = $objQuery->getRow("*", "dtb_other_deliv","customer_id = ? AND other_deliv_id = ?"
+                                                    ,array($objCustomer->getValue('customer_id'), $_POST['deliv_check']));
+                    if (SC_Utils_Ex::isBlank($otherDeliv)) {
                         SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
                     }
 
-                    $otherDeliv = $objQuery->select("*", "dtb_other_deliv",
-                                                    "other_deliv_id = ?",
-                                                    array($_POST['deliv_check']));
-                    $sqlval = $otherDeliv[0];
-                    $sqlval['deliv_id'] = $objPurchase->getDeliv($this->cartKey);
-                    $objPurchase->saveShippingTemp($sqlval, $_POST['deliv_check']);
+                    $objPurchase->copyFromOrder($sqlval, $otherDeliv, 'shipping', '');;
+                    $objPurchase->saveShippingTemp($sqlval);
                     $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer);
 
@@ -248,5 +245,5 @@
 
         default:
-            //$objPurchase->unsetShippingTemp();
+            $objPurchase->unsetShippingTemp();
             $arrOrderTemp = $objPurchase->getOrderTemp($uniqid);
             if (empty($arrOrderTemp)) $arrOrderTemp = array("");
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 19919)
+++ branches/version-2_5-dev/data/class/pages/admin/order/LC_Page_Admin_Order_Edit.php	(revision 19920)
@@ -703,4 +703,5 @@
         $result = $objQuery->update($table, $dest, "order_id = ?", array($order_id));
         if ($result == 0) {
+            $dest['order_id'] = $order_id;
             $result = $objQuery->insert($table, $dest);
         }
Index: branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php
===================================================================
--- branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php	(revision 19912)
+++ branches/version-2_5-dev/data/class/helper/SC_Helper_Purchase.php	(revision 19920)
@@ -281,4 +281,6 @@
      * 受注情報($src)を $dest の order_* へコピーする.
      *
+     * TODO 汎用的にして SC_Utils へ移動
+     *
      * @param array $dest コピー先の配列
      * @param array $src コピー元の配列
@@ -294,7 +296,13 @@
                                          'addr01', 'addr02',
                                          'tel01', 'tel02', 'tel03')) {
+        if (!SC_Utils_Ex::isBlank($prefix)) {
+            $prefix = $prefix . '_';
+        }
+        if (!SC_Utils_Ex::isBlank($src_prefix)) {
+            $src_prefix = $src_prefix . '_';
+        }
         foreach ($keys as $key) {
             if (in_array($key, $keys)) {
-                $dest[$prefix . '_' . $key] = $src[$src_prefix . '_' . $key];
+                $dest[$prefix . $key] = $src[$src_prefix . $key];
             }
         }
