diff --git a/src/p_mobj.c b/src/p_mobj.c
index b2a9b09b56a62a63144830573316c814a1e54b6f..148004819757a0f2ae94919267610811bdf32e12 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -10331,7 +10331,6 @@ void P_RemoveSavegameMobj(mobj_t *mobj)
 		thinker_t *thinker = (thinker_t *)mobj;
 		thinker_t *next = thinker->next;
 		(next->prev = thinker->prev)->next = next;
-		R_DestroyLevelInterpolators(thinker);
 		Z_Free(thinker);
 	}
 }
diff --git a/src/p_saveg.c b/src/p_saveg.c
index a2656a46763c6137461fa44125cad91713197782..7580600333487345787c44133614f10c88f5b3c9 100644
--- a/src/p_saveg.c
+++ b/src/p_saveg.c
@@ -2677,7 +2677,11 @@ static void P_NetUnArchiveThinkers(void)
 		if (currentthinker->function.acp1 == (actionf_p1)P_MobjThinker || currentthinker->function.acp1 == (actionf_p1)P_NullPrecipThinker)
 			P_RemoveSavegameMobj((mobj_t *)currentthinker); // item isn't saved, don't remove it
 		else
+		{
+			(next->prev = currentthinker->prev)->next = next;
+			R_DestroyLevelInterpolators(currentthinker);
 			Z_Free(currentthinker);
+		}
 	}
 
 	// we don't want the removed mobjs to come back
@@ -3090,6 +3094,7 @@ static inline void P_NetArchiveSpecials(void)
 	// Sky number
 	WRITEINT32(save_p, globallevelskynum);
 
+	CONS_Printf("globalweather write %d", globalweather);
 	// Current global weather type
 	WRITEUINT8(save_p, globalweather);
 
@@ -3126,6 +3131,7 @@ static void P_NetUnArchiveSpecials(void)
 		P_SetupLevelSky(j, true);
 
 	globalweather = READUINT8(save_p);
+	CONS_Printf("globalweather read %d", globalweather);
 
 	if (globalweather)
 	{
diff --git a/src/p_setup.c b/src/p_setup.c
index 328a3ff34b0d65308144be45e44bf22a362406a5..4f4140dfc643e1aa72216a949148c5d2237cc74e 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -3124,14 +3124,14 @@ boolean P_SetupLevel(boolean skipprecip)
 		if (!playerstarts[numcoopstarts])
 			break;
 
+	globalweather = mapheaderinfo[gamemap-1]->weather;
+
 	// set up world state
 	P_SpawnSpecials(fromnetsave);
 
 	if (loadprecip) //  ugly hack for P_NetUnArchiveMisc (and P_LoadNetGame)
 		P_SpawnPrecipitation();
 
-	globalweather = mapheaderinfo[gamemap-1]->weather;
-
 #ifdef HWRENDER // not win32 only 19990829 by Kin
 	if (rendermode != render_soft && rendermode != render_none)
 	{