diff --git a/core/AdminCache.cpp b/core/AdminCache.cpp
index 57ca47cb..7298347a 100644
--- a/core/AdminCache.cpp
+++ b/core/AdminCache.cpp
@@ -349,7 +349,7 @@ void AdminCache::AddCommandOverride(const char *cmd, OverrideType type, FlagBits
 
 	sm_trie_insert(pTrie, cmd, (void *)(unsigned int)flags);
 
-	g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags);
+	g_ConCmds.UpdateAdminCmdFlags(cmd, type, flags, false);
 }
 
 bool AdminCache::GetCommandOverride(const char *cmd, OverrideType type, FlagBits *pFlags)
@@ -397,7 +397,7 @@ void AdminCache::_UnsetCommandGroupOverride(const char *group)
 
 	sm_trie_delete(m_pCmdGrpOverrides, group);
 
-	g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0);
+	g_ConCmds.UpdateAdminCmdFlags(group, Override_CommandGroup, 0, true);
 }
 
 void AdminCache::_UnsetCommandOverride(const char *cmd)
@@ -409,7 +409,7 @@ void AdminCache::_UnsetCommandOverride(const char *cmd)
 
 	sm_trie_delete(m_pCmdOverrides, cmd);
 
-	g_ConCmds.UpdateAdminCmdFlags(cmd, Override_Command, 0);
+	g_ConCmds.UpdateAdminCmdFlags(cmd, Override_Command, 0, true);
 }
 
 void AdminCache::DumpCommandOverrideCache(OverrideType type)
diff --git a/core/ConCmdManager.cpp b/core/ConCmdManager.cpp
index c8d4a768..43da1796 100644
--- a/core/ConCmdManager.cpp
+++ b/core/ConCmdManager.cpp
@@ -648,7 +648,7 @@ void ConCmdManager::AddToCmdList(ConCmdInfo *info)
 	}
 }
 
-void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits)
+void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits, bool remove)
 {
 	ConCmdInfo *pInfo;
 
@@ -667,7 +667,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag
 			pHook = (*iter);
 			if (pHook->pAdmin)
 			{
-				if (bits)
+				if (!remove)
 				{
 					pHook->pAdmin->eflags = bits;
 				} else {
@@ -698,7 +698,7 @@ void ConCmdManager::UpdateAdminCmdFlags(const char *cmd, OverrideType type, Flag
 				pHook = (*citer);
 				if (pHook->pAdmin && pHook->pAdmin->cmdGrpId == grpid)
 				{
-					if (bits)
+					if (remove)
 					{
 						pHook->pAdmin->eflags = bits;
 					} else {
diff --git a/core/ConCmdManager.h b/core/ConCmdManager.h
index 162209e3..062003e9 100644
--- a/core/ConCmdManager.h
+++ b/core/ConCmdManager.h
@@ -117,7 +117,7 @@ public:
 						 const char *description, 
 						 int flags);
 	ResultType DispatchClientCommand(int client, const char *cmd, int args, ResultType type);
-	void UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits);
+	void UpdateAdminCmdFlags(const char *cmd, OverrideType type, FlagBits bits, bool remove);
 	bool LookForSourceModCommand(const char *cmd);
 	bool LookForCommandAdminFlags(const char *cmd, FlagBits *pFlags);
 	bool CheckCommandAccess(int client, const char *cmd, FlagBits flags);