diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index 1b987bcf130496249a0bd670765ea981d52d8ed0..6cf5191472031cf9bb9dbea671064fd7339ec878 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -2146,12 +2146,6 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum)
 	if (demoplayback && !timingdemo)
 		precache = false;
 
-	if (resetplayer && !FLS)
-	{
-		emeralds = 0;
-		memset(&luabanks, 0, sizeof(luabanks));
-	}
-
 	if (modeattacking)
 	{
 		SetPlayerSkinByNum(0, cv_chooseskin.value-1);
diff --git a/src/g_game.c b/src/g_game.c
index b8c43499850cd49ca39fd6498b37a4d91b95c8ed..a1fd2e6ec620ee7f5d87b24b2e60c721b9af1138 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -5048,6 +5048,12 @@ void G_InitNew(UINT8 pultmode, const char *mapname, boolean resetplayer, boolean
 		numgameovers = tokenlist = token = sstimer = redscore = bluescore = lastmap = 0;
 		countdown = countdown2 = exitfadestarted = 0;
 
+		if (!FLS)
+		{
+			emeralds = 0;
+			memset(&luabanks, 0, sizeof(luabanks));
+		}
+
 		for (i = 0; i < MAXPLAYERS; i++)
 		{
 			players[i].playerstate = PST_REBORN;