diff --git a/Source/Game/Entities/Unit/Unit.Spells.cs b/Source/Game/Entities/Unit/Unit.Spells.cs index 8b9cef7ba..3c219c6c7 100644 --- a/Source/Game/Entities/Unit/Unit.Spells.cs +++ b/Source/Game/Entities/Unit/Unit.Spells.cs @@ -2949,7 +2949,13 @@ namespace Game.Entities }, removeMode); foreach (Aura aura in aurasToUpdateTargets) + { aura.UpdateTargetMap(aura.GetCaster()); + + // Fully remove the aura if all effects were removed + if (!aura.IsPassive() && aura.GetOwner() == this && aura.GetApplicationOfTarget(GetGUID()) == null) + aura.Remove(removeMode); + } } public void RemoveAurasDueToSpellBySteal(uint spellId, ObjectGuid casterGUID, WorldObject stealer, int stolenCharges = 1) {