diff --git a/core/AdminCache.cpp b/core/AdminCache.cpp
index 3f2f9b42..aa1ec086 100644
--- a/core/AdminCache.cpp
+++ b/core/AdminCache.cpp
@@ -831,6 +831,7 @@ void AdminCache::DumpAdminCache(AdminCachePart part, bool rebuild)
 			m_pCacheFwd->PushCell(AdminCache_Admins);
 			m_pCacheFwd->Execute(&result);
 		}
+		g_Players.RecheckAnyAdmins();
 	}
 }
 
diff --git a/core/PlayerManager.cpp b/core/PlayerManager.cpp
index d11ab7b2..f64488cf 100644
--- a/core/PlayerManager.cpp
+++ b/core/PlayerManager.cpp
@@ -708,6 +708,18 @@ const char *PlayerManager::GetPassInfoVar()
 	return m_PassInfoVar.c_str();
 }
 
+void PlayerManager::RecheckAnyAdmins()
+{
+	for (int i=1; i<=m_maxClients; i++)
+	{
+		if (m_Players[i].IsInGame() && m_Players[i].IsAuthorized())
+		{
+			m_Players[i].DoBasicAdminChecks();
+		}
+	}
+}
+
+
 /*******************
  *** PLAYER CODE ***
  *******************/
diff --git a/core/PlayerManager.h b/core/PlayerManager.h
index 60756c55..4ec8772b 100644
--- a/core/PlayerManager.h
+++ b/core/PlayerManager.h
@@ -116,6 +116,7 @@ public:
 	bool CheckSetAdmin(int index, CPlayer *pPlayer, AdminId id);
 	bool CheckSetAdminName(int index, CPlayer *pPlayer, AdminId id);
 	const char *GetPassInfoVar();
+	void RecheckAnyAdmins();
 private:
 	void OnServerActivate(edict_t *pEdictList, int edictCount, int clientMax);
 private:
diff --git a/plugins/basecommands.sp b/plugins/basecommands.sp
index fdc3cdc0..fd75b241 100644
--- a/plugins/basecommands.sp
+++ b/plugins/basecommands.sp
@@ -51,12 +51,25 @@ public OnPluginStart()
 	RegAdminCmd("sm_unban", Command_Unban, ADMFLAG_UNBAN, "sm_unban <steamid>");
 	RegAdminCmd("sm_addban", Command_AddBan, ADMFLAG_RCON, "sm_addban <time> <steamid> [reason]");
 	RegAdminCmd("sm_banip", Command_BanIp, ADMFLAG_RCON, "sm_banip <time> <ip> [reason]");
+	RegAdminCmd("sm_reloadadmins", Command_ReloadAdmins, ADMFLAG_BAN, "sm_reloadadmins");
 	
 	hBanForward = CreateGlobalForward("OnClientBanned", ET_Hook, Param_Cell, Param_Cell, Param_Cell, Param_String);
 	hAddBanForward = CreateGlobalForward("OnBanAdded", ET_Hook, Param_Cell, Param_String, Param_Cell, Param_String);
 	hBanRemoved = CreateGlobalForward("OnBanRemoved", ET_Hook, Param_Cell, Param_String);
 }
 
+public Action:Command_ReloadAdmins(client, args)
+{
+	/* Dump it all! */
+	DumpAdminCache(AdminCache_Groups, true);
+	DumpAdminCache(AdminCache_Overrides, true);
+	
+	LogMessage("\"%L\" refreshed the admin cache.", client);
+	ReplyToCommand(client, "[SM] %t", "Admin cache refreshed");
+	
+	return Plugin_Handled;
+}
+
 public Action:Command_BanIp(client, args)
 {
 	if (args < 2)