Index: branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php
===================================================================
--- branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php	(revision 19872)
+++ branches/version-2_5-dev/data/class/pages/shopping/LC_Page_Shopping.php	(revision 19890)
@@ -162,5 +162,5 @@
             if(count($this->arrErr) == 0) {
                 // DBへのデータ登録
-                $this->lfRegistData($uniqid, $objPurchase, $objCustomer, $this->cartKey);
+                $this->lfRegistData($uniqid, $objPurchase, $objCustomer, $this->cartKey, true);
                 // 正常に登録されたことを記録しておく
                 $objSiteSess->setRegistFlag();
@@ -181,5 +181,4 @@
             // ※breakなし
         default:
-            $objPurchase->unsetShippingTemp();
             if(isset($_GET['from']) && $_GET['from'] == 'nonmember') {
                 $this->tpl_mainpage = 'shopping/nonmember_input.tpl';
@@ -189,9 +188,19 @@
             if (empty($arrOrderTemp)) $arrOrderTemp = array('order_email' => "",
                                                             'order_birth' => "");
-
+            $arrShippingTemp = $objPurchase->getShippingTemp();
             // DB値の取得
             $this->objFormParam->setParam($arrOrderTemp);
+            /*
+             * count($arrShippingTemp) > 1 は複数配送であり,
+             * $arrShippingTemp[0] は注文者が格納されている
+             */
+            if (count($arrShippingTemp) > 1) {
+                $this->objFormParam->setParam($arrShippingTemp[1]);
+            } else {
+                $this->objFormParam->setParam($arrShippingTemp[0]);
+            }
             $this->objFormParam->setValue('order_email02', $arrOrderTemp['order_email']);
             $this->objFormParam->setDBDate($arrOrderTemp['order_birth']);
+            $objPurchase->unsetShippingTemp();
         }
 
@@ -304,5 +313,5 @@
         $this->objFormParam->addParam("性別", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
         $this->objFormParam->addParam("職業", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
-        $this->objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), "", false);
+        $this->objFormParam->addParam("別のお届け先", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
         $this->objFormParam->addParam("お名前(姓)", "shipping_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
         $this->objFormParam->addParam("お名前(名)", "shipping_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
@@ -321,5 +330,5 @@
 
     /* DBへデータの登録 */
-    function lfRegistData($uniqid, &$objPurchase, &$objCustomer, $productTypeId) {
+    function lfRegistData($uniqid, &$objPurchase, &$objCustomer, $productTypeId, $isMultiple = false) {
         $params = $this->objFormParam->getHashArray();
         $sqlval = $this->objFormParam->getDbArray();
@@ -349,7 +358,15 @@
             }
         }
-        $objPurchase->saveShippingTemp($order_val, 0);
-        if ($params['deliv_check'] == '1') {
-            $objPurchase->saveShippingTemp($shipping_val, 1);
+        if ($isMultiple) {
+            $objPurchase->saveShippingTemp($order_val, 0);
+            if ($params['deliv_check'] == '1') {
+                $objPurchase->saveShippingTemp($shipping_val, 1);
+            }
+        } else {
+            if ($params['deliv_check'] == '1') {
+                $objPurchase->saveShippingTemp($shipping_val, 0);
+            } else {
+                $objPurchase->saveShippingTemp($order_val, 0);
+            }
         }
         $objPurchase->saveOrderTemp($uniqid, $sqlval, $objCustomer);
