diff --git a/_CleanupRequired/TopDefenders/scripting/TopDefenders.sp b/_CleanupRequired/TopDefenders/scripting/TopDefenders.sp
index 2f81dbe6..b3f99bfd 100644
--- a/_CleanupRequired/TopDefenders/scripting/TopDefenders.sp
+++ b/_CleanupRequired/TopDefenders/scripting/TopDefenders.sp
@@ -28,7 +28,7 @@ ConVar g_hCVar_ProtectionMinimal2;
 ConVar g_hCVar_ProtectionMinimal3;
 
 /* INTERGERS */
-int g_iCrownEntity = -1;
+int g_iCrownEntity = INVALID_ENT_REFERENCE;
 int g_iDialogLevel = 100000;
 
 int g_iPlayerWinner[3];
@@ -534,6 +534,7 @@ public void OnClientSpawn(Event hEvent, const char[] sEvent, bool bDontBroadcast
 	if (g_iPlayerWinner[0] == GetSteamAccountID(client) && !g_bHideCrown[client])
 	{
 		CreateTimer(7.0, OnClientSpawnPost, client, TIMER_FLAG_NO_MAPCHANGE);
+		KillCrown();
 	}
 }
 
@@ -545,38 +546,8 @@ public Action OnClientSpawnPost(Handle timer, int client)
 	if (!IsClientInGame(client) || IsFakeClient(client) || !IsPlayerAlive(client))
 		return;
 
-	if ((g_iCrownEntity = CreateEntityByName("prop_dynamic")) == INVALID_ENT_REFERENCE)
-		return;
-
-	SetEntityModel(g_iCrownEntity, "models/unloze/crown_v2.mdl");
-
-	DispatchKeyValue(g_iCrownEntity, "solid",                 "0");
-	DispatchKeyValue(g_iCrownEntity, "modelscale",            "1.5");
-	DispatchKeyValue(g_iCrownEntity, "disableshadows",        "1");
-	DispatchKeyValue(g_iCrownEntity, "disablereceiveshadows", "1");
-	DispatchKeyValue(g_iCrownEntity, "disablebonefollowers",  "1");
-
-	float fVector[3];
-	float fAngles[3];
-	GetClientAbsOrigin(client, fVector);
-	GetClientAbsAngles(client, fAngles);
-
-	fVector[2] += 80.0;
-	fAngles[0] = 8.0;
-	fAngles[2] = 5.5;
-
-	TeleportEntity(g_iCrownEntity, fVector, fAngles, NULL_VECTOR);
-
-	float fDirection[3];
-	fDirection[0] = 0.0;
-	fDirection[1] = 0.0;
-	fDirection[2] = 1.0;
-
-	TE_SetupSparks(fVector, fDirection, 1000, 200);
-	TE_SendToAll();
-
-	SetVariantString("!activator");
-	AcceptEntityInput(g_iCrownEntity, "SetParent", client);
+	KillCrown();
+	SpawnCrown(client);
 }
 
 //----------------------------------------------------------------------------------------------------
@@ -587,12 +558,58 @@ public void OnClientDeath(Event hEvent, const char[] sEvent, bool bDontBroadcast
 	int client = GetClientOfUserId(hEvent.GetInt("userid"));
 
 	if (g_iPlayerWinner[0] == GetSteamAccountID(client) && !IsPlayerAlive(client))
-	{
-		if (g_iCrownEntity != INVALID_ENT_REFERENCE && AcceptEntityInput(g_iCrownEntity, "Kill"))
-		{
-			g_iCrownEntity = INVALID_ENT_REFERENCE;
-		}
-	}
+		KillCrown();
+}
+
+//----------------------------------------------------------------------------------------------------
+// Purpose:
+//----------------------------------------------------------------------------------------------------
+void SpawnCrown(int client)
+{
+	int iCrownEntity = INVALID_ENT_REFERENCE;
+	if ((iCrownEntity = CreateEntityByName("prop_dynamic")) == INVALID_ENT_REFERENCE)
+		return;
+
+	SetEntityModel(iCrownEntity, "models/unloze/crown_v2.mdl");
+
+	DispatchKeyValue(iCrownEntity, "solid",                 "0");
+	DispatchKeyValue(iCrownEntity, "modelscale",            "1.5");
+	DispatchKeyValue(iCrownEntity, "disableshadows",        "1");
+	DispatchKeyValue(iCrownEntity, "disablereceiveshadows", "1");
+	DispatchKeyValue(iCrownEntity, "disablebonefollowers",  "1");
+
+	float fVector[3];
+	float fAngles[3];
+	GetClientAbsOrigin(client, fVector);
+	GetClientAbsAngles(client, fAngles);
+
+	fVector[2] += 80.0;
+	fAngles[0] = 8.0;
+	fAngles[2] = 5.5;
+
+	TeleportEntity(iCrownEntity, fVector, fAngles, NULL_VECTOR);
+
+	float fDirection[3];
+	fDirection[0] = 0.0;
+	fDirection[1] = 0.0;
+	fDirection[2] = 1.0;
+
+	TE_SetupSparks(fVector, fDirection, 1000, 200);
+	TE_SendToAll();
+
+	SetVariantString("!activator");
+	AcceptEntityInput(iCrownEntity, "SetParent", client);
+
+	g_iCrownEntity = iCrownEntity;
+}
+
+//----------------------------------------------------------------------------------------------------
+// Purpose:
+//----------------------------------------------------------------------------------------------------
+void KillCrown()
+{
+	if ((IsValidEntity(g_iCrownEntity) && AcceptEntityInput(g_iCrownEntity, "Kill")) || g_iCrownEntity != INVALID_ENT_REFERENCE)
+		g_iCrownEntity = INVALID_ENT_REFERENCE;
 }
 
 //----------------------------------------------------------------------------------------------------