diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 40edc0576..46e674736 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2471,6 +2471,11 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) TempSummonType summonType = (duration <= 0) ? TEMPSUMMON_DEAD_DESPAWN : TEMPSUMMON_TIMED_DESPAWN; + Unit* summoner = m_originalCaster; + if (summoner->IsPet()) + if (Unit* owner = summoner->GetOwner()) + summoner = owner; + for (uint32 count = 0; count < numSummons; ++count) { Position pos; @@ -2480,7 +2485,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex) // randomize position for multiple summons pos = m_caster->GetRandomPoint(*destTarget, radius); - summon = m_originalCaster->SummonCreature(entry, pos, summonType, duration, 0, nullptr, personalSpawn); + summon = summoner->SummonCreature(entry, pos, summonType, duration, 0, nullptr, personalSpawn); if (!summon) continue;