diff --git a/autoassignrole.module b/autoassignrole.module
index 30c43e4..70b7487 100644
--- a/autoassignrole.module
+++ b/autoassignrole.module
@@ -69,7 +69,8 @@ function autoassignrole_menu() {
 function autoassignrole_user_presave(&$edit, $account, $category) {
   // Use case http://drupal.org/node/971622
   // Make sure we only assign roles automatically when enabled to do so.
-  if (variable_get('autoassignrole_auto_active', 0) || variable_get("autoassignrole_user_active", 0)) {
+  if (variable_get('autoassignrole_auto_active', 0) || variable_get("autoassignrole_user_active", 0)
+    || (variable_get('autoassignrole_admin_active', 0) && user_access('administer users'))) {
     // Use case http://drupal.org/node/944864
     // Only assign roles if this is a new account.
     if (isset($account->is_new) && !empty($account->is_new)) {
@@ -78,7 +79,8 @@ function autoassignrole_user_presave(&$edit, $account, $category) {
       $roles_to_add = array();
 
       // Add in automatic roles.
-      if (variable_get('autoassignrole_auto_active', 0)) {
+      if (variable_get('autoassignrole_auto_active', 0)
+        || (variable_get('autoassignrole_admin_active', 0) && user_access('administer users'))) {
         $roles_to_add += array_intersect_key($user_roles, array_filter(variable_get('autoassignrole_auto_roles', array())));
       }
 
