Try this fix:
diff --git a/src/game/Object/Unit.cpp b/src/game/Object/Unit.cpp
index 08ba7cd..408960e 100644
--- a/src/game/Object/Unit.cpp
+++ b/src/game/Object/Unit.cpp
@@ -634,10 +634,11 @@ uint32 Unit::DealDamage(Unit* pVictim, uint32 damage, CleanDamage const* cleanDa
victim->SetLootRecipient(this);
if (IsControlledByPlayer()) // more narrow: IsPet(), IsGuardian() ?
- victim->LowerPlayerDamageReq(health < damage ? health : damage);
+ victim->LowerPlayerDamageReq(victim->GetHealth() < damage ? victim->GetHealth() : damage);
+
}
- if (health <= damage)
+ if (pVictim->GetHealth() <= damage)
{
DEBUG_FILTER_LOG(LOG_FILTER_DAMAGE, "DealDamage %s Killed %s", GetGuidStr().c_str(), pVictim->GetGuidStr().c_str());