diff --git a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp index 317f8c2a9..83ec1a36d 100644 --- a/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/PointMovementGenerator.cpp @@ -162,9 +162,12 @@ void PointMovementGenerator::DoFinalize(T* unit) { unit->ClearUnitState(UNIT_STATE_CHARGING); - if (Unit* target = ObjectAccessor::GetUnit(*unit, _chargeTargetGUID)) + if (_chargeTargetGUID && _chargeTargetGUID == unit->GetTarget()) { - unit->Attack(target, true); + if (Unit* target = ObjectAccessor::GetUnit(*unit, _chargeTargetGUID)) + { + unit->Attack(target, true); + } } }