diff --git a/administerusersbyrole.module b/administerusersbyrole.module
index 17b2cd0..442eae5 100644
--- a/administerusersbyrole.module
+++ b/administerusersbyrole.module
@@ -85,6 +85,8 @@ function _administerusersbyrole_can_edit_user($account) {
 }
 
 function _administerusersbyrole_can_cancel_user($account) {
+  global $user;
+
   if ($account->uid == 1) {
     return FALSE;
   }
@@ -95,6 +97,10 @@ function _administerusersbyrole_can_cancel_user($account) {
     $account = user_load($account->uid);
   }
 
+  // If user can Cancel own user account.
+  if ($user->uid == $account->uid && user_access('cancel account')) {
+    return TRUE;
+  }
   if ($account->roles === array(DRUPAL_AUTHENTICATED_RID => 'authenticated user')) {
     if (!user_access('cancel users with no custom roles')) {
       return FALSE;
