diff --git a/src/p_mobj.c b/src/p_mobj.c index ee09ad8e1..b6a50f7f6 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10802,7 +10802,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 6e143962f..a03dbe677 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -3984,7 +3984,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); + } } }