diff --git a/src/server/game/Phasing/PhasingHandler.cpp b/src/server/game/Phasing/PhasingHandler.cpp index b4c91e75291..148ea6b677b 100644 --- a/src/server/game/Phasing/PhasingHandler.cpp +++ b/src/server/game/Phasing/PhasingHandler.cpp @@ -294,6 +294,7 @@ void PhasingHandler::OnConditionChange(WorldObject* object) if (itr->AreaConditions && !sConditionMgr->IsObjectMeetToConditions(srcInfo, *itr->AreaConditions)) { newSuppressions.AddPhase(itr->Id, itr->Flags, itr->AreaConditions, itr->References); + phaseShift.ModifyPhasesReferences(itr, -itr->References); itr = phaseShift.Phases.erase(itr); } else @@ -305,6 +306,7 @@ void PhasingHandler::OnConditionChange(WorldObject* object) if (sConditionMgr->IsObjectMeetToConditions(srcInfo, *ASSERT_NOTNULL(itr->AreaConditions))) { changed = phaseShift.AddPhase(itr->Id, itr->Flags, itr->AreaConditions, itr->References) || changed; + suppressedPhaseShift.ModifyPhasesReferences(itr, -itr->References); itr = suppressedPhaseShift.Phases.erase(itr); } else