Index: uc_addresses.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/uc_addresses/uc_addresses.module,v
retrieving revision 1.28
diff -u -r1.28 uc_addresses.module
--- uc_addresses.module	20 Apr 2009 20:54:10 -0000	1.28
+++ uc_addresses.module	11 Dec 2009 09:58:41 -0000
@@ -852,9 +852,9 @@
 
   $uid = $address_user->uid;
   $aid = $address ? $address->aid : 0;
-  $form_state['storage']['user'] = $address_user;
-  $form_state['storage']['address'] = $address;
-  $form_state['storage']['view'] = $view;
+  $form['#user'] = $address_user;
+  $form['#address'] = $address;
+  $form['#view'] = $view;
 
   // Get the panes to display
 
@@ -963,37 +963,38 @@
 function uc_addresses_get_address_form_submit($form, &$form_state) {
   global $user;
 
-  $address_user = $form_state['storage']['user'];
-  $address = $form_state['storage']['address'];
-  $view = $form_state['storage']['view'];
+  $address_user = $form['#user'];
+  $address = $form['#address'];
+  $view = $form['#view'];
 
   if ($form_state['clicked_button']['#value'] == t('Delete address')) {
       cache_clear_all();
-      drupal_goto('user/'. $address_user->uid .'/addresses/' . $address->aid . '/delete');
-  }
-
-  if (!$address) {
-    $address = new stdClass();
-    $address->uid = $address_user->uid;
+      $form_state['redirect'] = array('user/'. $address_user->uid .'/addresses/' . $address->aid . '/delete');
   }
+  else {
+    if (!$address) {
+      $address = new stdClass();
+      $address->uid = $address_user->uid;
+    }
 
-  $valid = TRUE;
-  foreach (element_children($form_state['values']['panes']) as $pane_id) {
-    $func = _address_pane_data($pane_id, 'callback');
-    $isvalid = $func('process', $address, $form_state['values']['panes'][$pane_id]);
-    if ($isvalid === FALSE) {
-      $_SESSION['expanded_panes'][] = $key;
-      $valid = FALSE;
+    $valid = TRUE;
+    foreach (element_children($form_state['values']['panes']) as $pane_id) {
+      $func = _address_pane_data($pane_id, 'callback');
+      $isvalid = $func('process', $address, $form_state['values']['panes'][$pane_id]);
+      if ($isvalid === FALSE) {
+        $_SESSION['expanded_panes'][] = $key;
+        $valid = FALSE;
+      }
+    }
+    if ($view == 'edit') { // Update database
+      _uc_addresses_db_update_address($address);
+    }
+    elseif ($view == 'new' || $view == 'add') { // Insert into datebase
+      _uc_addresses_db_add_address($address);
     }
-  }
-  if ($view == 'edit') { // Update database
-    _uc_addresses_db_update_address($address);
-  }
-  elseif ($view == 'new' || $view == 'add') { // Insert into datebase
-    _uc_addresses_db_add_address($address);
-  }
 
-  drupal_goto('user/'. $address_user->uid .'/addresses');
+    $form_state['redirect'] = array('user/'. $address_user->uid .'/addresses');
+  }
 }
 
 /**
@@ -1117,8 +1118,8 @@
  */
 function uc_addresses_delete_address_confirm_form(&$form_state, $address_user, $address) {
 
-  $form_state['storage']['user'] = $address_user;
-  $form_state['storage']['address'] = $address;
+  $form['#user'] = $address_user;
+  $form['#address'] = $address;
 
   // The buttons
 
@@ -1136,13 +1137,13 @@
  */
 function uc_addresses_delete_address_confirm_form_submit($form, &$form_state) {
 
-  $address_user = $form_state['storage']['user'];
-  $address = $form_state['storage']['address'];
+  $address_user = $form['#user'];
+  $address = $form['#address'];
 
   _uc_addresses_db_delete_address($address->aid);
   drupal_set_message(t('The address has been deleted.'));
 
-  drupal_goto('user/'. $address_user->uid .'/addresses');
+  $form_state['redirect'] = array('user/'. $address_user->uid .'/addresses');
 }
 
 /**
