--- trunk/modules/ecommerce/address/address.module	2007/06/28 21:21:57	1
+++ branches/1.0/modules/ecommerce/address/address.module	2008/06/06 19:44:39	125
@@ -92,12 +92,13 @@
     case 'save':
       if ($txn->uid > 0) {
         $txn->address['shipping'] = address_get_address($txn->shipping_address ? $txn->shipping_address : $txn->billing_address);
-
-        $txn->address['billing'] = address_get_address($txn->billing_address);
+        $txn->address['billing'] = (object)address_get_address($txn->billing_address);
       }
       else {
         $txn->address['billing'] = (object)$txn->address['billing'];
-        if ($txn->address['shipping']) {
+        if ($txn->address['shipping']['shippingSame']) {
+          $txn->address['shipping'] = (object)$txn->address['billing'];
+        } else if ($txn->address['shipping']) {
           $txn->address['shipping'] = (object)$txn->address['shipping'];
         }
       }
@@ -231,6 +232,7 @@
       $form['address']['billing']['#type'] = 'fieldset';
       $form['address']['billing']['#title'] = t('Billing address');
       $form['address']['shipping'] = store_address_form($txn->address['shipping']);
+      $form['address']['shipping']['shippingSame'] = array('#type' => 'checkbox', '#title' => t('Same as billing address.'), '#weight'=>-40);
       $form['address']['shipping']['#type'] = 'fieldset';
       $form['address']['shipping']['#title'] = t('Shipping address');
     }
