diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 9ada736d033..8e0e95474ee 100644 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -1566,7 +1566,7 @@ bool Aura::CanStackWith(Aura const* existingAura) const bool sameCaster = GetCasterGUID() == existingAura->GetCasterGUID(); // passive auras don't stack with another rank of the spell cast by same caster - if (IsPassive() && sameCaster && m_spellInfo->IsRankOf(existingSpellInfo)) + if (IsPassive() && sameCaster && (m_spellInfo->IsDifferentRankOf(existingSpellInfo) || (m_spellInfo->Id == existingSpellInfo->Id && m_castItemGuid.IsEmpty()))) return false; for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)