@@ -121,7 +121,8 @@ function user_delete_form_alter(&$form, $form_state, $form_id) {
         '#weight' => 0,
       );
     }
-    $form['#redirect'] = 'user/' . $form['_account']['#value']->uid;
+    $form['#redirect'] = !empty($_GET['destination']) ? $_GET['destination'] : 'user/' . $form['_account']['#value']->uid;
+    $form['actions']['cancel'] = array('#value' => l(t('Cancel'), $form['#redirect']));
     $form['#submit'] = array('user_delete_submit');
   }
 }
@@ -161,7 +162,7 @@ function user_delete_submit($form, &$form_state) {
       break;
     case 'user_delete_reassign':
       // Set redirect
-      $redirect = variable_get('user_delete_redirect', 'node');
+      $redirect = variable_get('user_delete_redirect', $form['#redirect']);
 
       // delete account
       user_delete($form_values, $uid);
@@ -173,7 +174,7 @@ function user_delete_submit($form, &$form_state) {
       // http://drupal.org/project/batchapi
 
       // Set redirect
-      $redirect = variable_get('user_delete_redirect', 'node');
+      $redirect = variable_get('user_delete_redirect', $form['#redirect']);
 
       // delete comments
       $result = db_query("SELECT cid FROM {comments} WHERE uid = %d", $uid);
@@ -214,7 +215,7 @@ function user_delete_submit($form, &$form_state) {
     // Load the anonymous user.
     $user = drupal_anonymous_user();
     // Set redirect
-    $redirect = variable_get('user_delete_redirect', 'node');
+    $redirect = variable_get('user_delete_redirect', $form['#redirect']);
   }
 
   // Clear the cache for anonymous users.

