diff --git a/src/game/Entities/Pet.cpp b/src/game/Entities/Pet.cpp index 5f7b30b48d..995af3332d 100644 --- a/src/game/Entities/Pet.cpp +++ b/src/game/Entities/Pet.cpp @@ -2401,7 +2401,17 @@ void Pet::ForcedDespawn(uint32 timeMSToDespawn, bool onlyAlive) if (IsAlive()) SetDeathState(JUST_DIED); - RemoveCorpse(true); // force corpse removal in the same grid + if (GetDeathState() == CORPSE) // rest of despawn cleanup meant to be done by Unsummon + { + if (AI()) + { + uint32 respawnDelay = 0; + AI()->CorpseRemoved(respawnDelay); + } + + if (InstanceData* mapInstance = GetInstanceData()) + mapInstance->OnCreatureDespawn(this); + } Unsummon(PET_SAVE_NOT_IN_SLOT, owner); }