diff --git a/Source/Game/Entities/Unit/Unit.Pets.cs b/Source/Game/Entities/Unit/Unit.Pets.cs index a1cab890a..c50ffb543 100644 --- a/Source/Game/Entities/Unit/Unit.Pets.cs +++ b/Source/Game/Entities/Unit/Unit.Pets.cs @@ -368,7 +368,13 @@ namespace Game.Entities // charm is set by aura, and aura effect remove handler was called during apply handler execution // prevent undefined behaviour if (aurApp != null && aurApp.GetRemoveMode() != 0) + { + // properly clean up charm changes up to this point to avoid leaving the unit in partially charmed state + SetFaction(_oldFactionId); + GetMotionMaster().InitializeDefault(); + charmer.SetCharm(this, false); return false; + } // Pets already have a properly initialized CharmInfo, don't overwrite it. if (type != CharmType.Vehicle && GetCharmInfo() == null)