diff --git a/modules/user.module b/modules/user.module
index 5652de8692d048450bbc8f0d413f347fbef79b76..55da4b6b337c14b5965f23f15d8445c0a608fb17 100644
--- a/modules/user.module
+++ b/modules/user.module
@@ -1328,6 +1328,10 @@ function user_admin_role($edit = array()) {
   else if ($op == t("Delete role")) {
     db_query("DELETE FROM {role} WHERE rid = %d", $id);
     db_query("DELETE FROM {permission} WHERE rid = %d", $id);
+
+    // Users with the deleted role are put back in the authenticated users pool
+    $aid = db_result(db_query("SELECT rid FROM {role} WHERE name = 'Authenticated user'"));
+    db_query("UPDATE {users} SET rid = %d WHERE rid = %d", $aid, $id);
   }
   else if ($op == t("Add role")) {
     db_query("INSERT INTO {role} (name) VALUES ('%s')", $edit["name"]);
diff --git a/modules/user/user.module b/modules/user/user.module
index 5652de8692d048450bbc8f0d413f347fbef79b76..55da4b6b337c14b5965f23f15d8445c0a608fb17 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -1328,6 +1328,10 @@ function user_admin_role($edit = array()) {
   else if ($op == t("Delete role")) {
     db_query("DELETE FROM {role} WHERE rid = %d", $id);
     db_query("DELETE FROM {permission} WHERE rid = %d", $id);
+
+    // Users with the deleted role are put back in the authenticated users pool
+    $aid = db_result(db_query("SELECT rid FROM {role} WHERE name = 'Authenticated user'"));
+    db_query("UPDATE {users} SET rid = %d WHERE rid = %d", $aid, $id);
   }
   else if ($op == t("Add role")) {
     db_query("INSERT INTO {role} (name) VALUES ('%s')", $edit["name"]);