diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index b35ba61eb2..f9bebe13ac 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13301,6 +13301,9 @@ void Unit::RemoveFromWorld() void Unit::CleanupsBeforeDelete(bool finalCleanup) { + // This needs to be before RemoveFromWorld to make GetCaster() return a valid pointer on aura removal + InterruptNonMeleeSpells(true); + if (IsInWorld()) RemoveFromWorld(); @@ -13313,7 +13316,6 @@ void Unit::CleanupsBeforeDelete(bool finalCleanup) if (finalCleanup) m_cleanupDone = true; - InterruptNonMeleeSpells(true); m_Events.KillAllEvents(false); // non-delatable (currently casted spells) will not deleted now but it will deleted at call in Map::RemoveAllObjectsInRemoveList CombatStop(); ClearComboPointHolders();