Index: pageroute.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.module,v
retrieving revision 1.71.2.8
diff -u -r1.71.2.8 pageroute.module
--- pageroute.module	5 Aug 2009 14:36:32 -0000	1.71.2.8
+++ pageroute.module	11 Aug 2009 10:26:31 -0000
@@ -142,14 +142,12 @@
     $nid = isset($args['nid']) ? $args['nid'] : NULL;
 
     if (module_exists('rules')) {
-      $args = &$form_state['args'];
       rules_invoke_event('pageroute_used', $route, $user, $uid, $nid);
     }
     module_invoke_all('pageroute_used',  $route, $user, $uid, $nid);
 
     $page_data = &$route->pageDataCurrent;
     $page_name = $page_data->name;
-
     if ($route->options['tabs'] == PAGEROUTE_MENU_TABS) {
 
       $url = '';
@@ -176,6 +174,7 @@
 
   drupal_set_title(check_plain($page_data->title));
 
+
   // loads the page variable with a page object
   $route->getForm($form, $page_data, $page, $form_state, $args);
 
@@ -228,23 +227,25 @@
         $class = get_class($page);
         // add default submit handler
         $function = 'getDefaultSubmitHandler';
-        pageroute_insert_handlers($form_state['submit_handlers'], call_user_func(array($class, $function), $form));
+        pageroute_insert_handlers($form, $form_state, call_user_func(array($class, $function), $form));
         // add default validate handler
         $function = 'getDefaultValidateHandler';
-        pageroute_insert_handlers($form_state['validate_handlers'], call_user_func(array($class, $function), $form));
+        pageroute_insert_handlers($form, $form_state, call_user_func(array($class, $function), $form), FALSE);
+
       default:
-        $form_state['submit_handlers'][] = 'pageroute_page_form_submit_prepare_target';
-        $form_state['submit_handlers'][] = 'pageroute_page_form_submit';
+        pageroute_insert_handlers($form, $form_state, 'pageroute_page_form_submit_prepare_target');
+        pageroute_insert_handlers($form, $form_state, 'pageroute_page_form_submit');
+
     }
   }
   else {  // tab-like submit button
     $class = get_class($page);
     // add default submit handler
     $function = 'getDefaultSubmitHandler';
-    pageroute_insert_handlers($form_state['submit_handlers'], call_user_func(array($class, $function), $form));
+    $form_state['submit_handlers'][] = call_user_func(array($class, $function), $form);
     // add default validate handler
     $function = 'getDefaultValidateHandler';
-    pageroute_insert_handlers($form_state['validate_handlers'], call_user_func(array($class, $function), $form));
+    $form_state['validate_handlers'][] = call_user_func(array($class, $function), $form);
   }
 
   // in case validate fails
@@ -256,12 +257,25 @@
 /**
  * Insert submit/validate handlers into array
  */
-function pageroute_insert_handlers(&$array, $handlers) {
-  if ($handlers) {
-    $save = $array;
-    $array = $handlers;
-    if ($save) {
-      $array += $save;
+function pageroute_insert_handlers(&$form, &$form_state, $handler, $submit = TRUE) {
+  if ($submit) {
+    if ($handler) {
+      if (empty($form_state['submit_handlers'])) {
+        $form['#submit'][] = $handler;
+      }
+      else {
+        $form_state['submit_handlers'][] = $handler;
+      }
+    }
+  }
+  else {
+    if ($handler) {
+      if (empty($form_state['validate_handlers'])) {
+        $form['#submit'][] = $handler;
+      }
+      else {
+        $form_state['validate_handlers'][] = $handler;
+      }
     }
   }
 }
@@ -333,7 +347,7 @@
   $route = &$page->route;
 
   $form_state['target'] = PAGEROUTE_CURRENT;
-  $route->setSuggestedPage($form_state['clicked_button']['#tab-button']);
+  $route->setSuggestedPage(PAGEROUTE_CURRENT, $form_state['clicked_button']['#tab-button']);
 
   $form_state['rebuild'] = TRUE;
 }
@@ -356,7 +370,7 @@
   $page = &$form_state['page'];
   $route = &$page->route;
 
-  $form_state['target'] = $page->get_cancel_target();
+  $form_state['target'] = $page->getCancelTarget();
 
   if (!$route->checkPageAccess($page->name, $form_state['target'])) {
     if ($route->options['redirect_path']) {
Index: pageroute.page_useredit.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/Attic/pageroute.page_useredit.inc,v
retrieving revision 1.1.2.2
diff -u -r1.1.2.2 pageroute.page_useredit.inc
--- pageroute.page_useredit.inc	10 Aug 2009 10:13:31 -0000	1.1.2.2
+++ pageroute.page_useredit.inc	11 Aug 2009 10:26:32 -0000
@@ -27,21 +27,15 @@
       pageroute_exit_now();
     }
 
-    if (isset($args['todo']['action']) && $args['todo']['action'] == t('Delete')) {
-      $args['hide_pageroute_buttons'] = TRUE;
-      $form += pageroute_node_delete_confirm($account, $form, $page, $args);
-      return;
-    }
-
     $args['hide_pageroute_buttons'] = FALSE;
-    $args['default_target'] = PAGEROUTE_FORWARD;
+    $args['default_target'] = PAGEROUTE_CURRENT;
 
     $this->options += array(
       'category' => 'account'
     );
 
     $form += drupal_retrieve_form('user_profile_form', $form_state, $account, $this->options['category']);
-    drupal_prepare_form('user_edit_form', $form, $form_state);
+    drupal_prepare_form('user_profile_form', $form, $form_state);
   }
 
   public function getAdminForm($page, &$form) {
@@ -73,15 +67,8 @@
     $todo = NULL;
     $args = &$form_state['storage']['route']->args;
 
-    if ($form_state['clicked_button']['#value'] == t('Delete')) {
-        if (is_numeric($form_state['clicked_button']['#name'])) {
-          $target = $form_state['clicked_button']['#name'];
-        }
-        else {
-          $target = $args['todo']['target'];
-        }
-
-        $todo = array('action' => $form_state['clicked_button']['#value'], 'target' => $target);
+    if ($form_state['clicked_button']['#value'] == 'Save') {
+      $args['default_target'] = PAGEROUTE_CURRENT;
     }
 
     return $todo;
@@ -91,40 +78,3 @@
     include_once(drupal_get_path('module', 'user') .'/user.pages.inc');
   }
 }
-
-/*
- * Provide an extra delete page to keep control about the destination parameter.
- */
-function pageroute_user_delete_confirm($user, $form, &$page, $args = NULL) {
-  if (user_access('delete', $user)) {
-
-    $form = array();
-    $form['uid'] = array('#type' => 'value', '#value' => $user->uid);
-
-    $form = confirm_form($form,
-      t('Are you sure you want to delete %name?', array('%name' => $user->name)),
-      pageroute_get_page_path($page, $args),
-      t('This action cannot be undone.'), t('Delete'), t('Cancel')
-    );
-
-    $form['actions']['submit']['#submit'][] = 'pageroute_node_delete_confirm_submit';
-
-    return $form;
-  }
-  drupal_access_denied();
-  pageroute_exit_now();
-}
-
-function pageroute_user_delete_confirm_submit($form, &$form_state) {
-  $form_state['target'] = PAGEROUTE_CURRENT;
-
-  if ($form_state['values']['confirm']) {
-    user_delete($form_state['values']['uid']);
-  }
-
-  $form_state['rebuild'] = TRUE;
-  unset($form_state['values']['target']);
-  unset($form_state['button_clicked']);
-  unset($form_state['args']['todo']);
-  unset($form_state['todo']);
-}
Index: pageroute.page_edit.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.page_edit.inc,v
retrieving revision 1.1.2.7
diff -u -r1.1.2.7 pageroute.page_edit.inc
--- pageroute.page_edit.inc	5 Aug 2009 14:36:32 -0000	1.1.2.7
+++ pageroute.page_edit.inc	11 Aug 2009 10:26:31 -0000
@@ -120,7 +120,7 @@
   }
 
   public static function getDefaultSubmitHandler($form) {
-    return $form['buttons']['submit']['#submit'];
+    return $form['buttons']['submit']['#submit'][0];
   }
 }
 
@@ -135,7 +135,7 @@
 
     $form = confirm_form($form,
       t('Are you sure you want to delete %title?', array('%title' => $node->title)),
-      pagerouteGetPagePath($page, $args),
+      pageroute_get_page_path($page, $args),
       t('This action cannot be undone.'), t('Delete'), t('Cancel')
     );
 
Index: pageroute.page_add.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/pageroute/pageroute.page_add.inc,v
retrieving revision 1.1.2.7
diff -u -r1.1.2.7 pageroute.page_add.inc
--- pageroute.page_add.inc	5 Aug 2009 14:36:32 -0000	1.1.2.7
+++ pageroute.page_add.inc	11 Aug 2009 10:26:31 -0000
@@ -84,6 +84,6 @@
   }
 
   public static function getDefaultSubmitHandler($form) {
-    return $form['buttons']['submit']['#submit'];
+    return $form['buttons']['submit']['#submit'][0];
   }
 }
