diff --git a/subuser.module b/subuser.module
index ed12589..134da94 100644
--- a/subuser.module
+++ b/subuser.module
@@ -265,6 +265,12 @@ function subuser_form_alter(&$form, &$form_state, $form_id) {
       // Remove the limit user setting from users that doesnt have the administer subusers permissions
       $form['field_subuser_limit']['#access'] = user_access('administer subusers', $user);
     break;
+    case 'user_cancel_confirm_form':
+      $form['user_cancel_method']['#access'] = true;
+      $form['user_cancel_confirm']['#access'] = true;
+      $form['user_cancel_confirm']['#default_value'] = false;
+      $form['user_cancel_notify']['#access'] = true;
+    break;
   }
 }
 
@@ -353,3 +359,25 @@ function subuser_ctools_plugin_api($module, $api) {
     return array('version' => 1);
   }
 }
+
+/**
+ * Implements hook_form_FORM_ID_alter(): user_cancel_confirm.
+*/
+function subuser_form_user_cancel_confirm_form_alter(&$form, &$form_state, $form_id) {
+  $form['#submit'][] = 'subuser_user_cancel_form_submit';
+}
+
+/**
+ * Additional submit handler for user_cancel_confirm.
+*/
+function subuser_user_cancel_form_submit(&$form, &$form_state) {
+  global $user;
+  $account = $form_state['values']['_account'];
+
+  $children = subuser_load_all($user);
+  $acct_uid = is_object($account) ? $account->uid : $account;
+  if(in_array($acct_uid, $children)) {
+	user_cancel($form_state['values'], $account->uid, $form_state['values']['user_cancel_method']);
+    $form_state['redirect'] = 'user/' . $user->uid . '/subuser';
+  }
+}
