diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c996c32bd..b953d8597 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -4122,6 +4122,10 @@ void Spell::SendChannelUpdate(uint32 time) if (Unit* target = ObjectAccessor::GetUnit(*m_caster, target_guid)) target->RemoveAurasByCasterSpell(m_spellInfo->Id, m_caster->GetObjectGuid()); + // Only finish channeling when latest channeled spell finishes + if (m_caster->GetUInt32Value(UNIT_CHANNEL_SPELL) != m_spellInfo->Id) + return; + m_caster->SetChannelObjectGuid(ObjectGuid()); m_caster->SetUInt32Value(UNIT_CHANNEL_SPELL, 0); } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 679636843..421c601cf 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "11861" + #define REVISION_NR "11862" #endif // __REVISION_NR_H__