Or maybe not so dirty hack. But as i think, the fix is in the place where is the real reason of problem.
In GridNotifiersImpl.h in function void MaNGOS::DynamicObjectUpdater::VisitHelper(Unit* target)
// Apply PersistentAreaAura on target
SpellAuraHolder *holder = target->GetSpellAuraHolder(spellInfo->Id, i_dynobject.GetCaster()->GetGUID());
bool addedToExisting = true;
if (!holder)
{
holder = CreateSpellAuraHolder(spellInfo, target, i_dynobject.GetCaster());
addedToExisting = false;
}
+ if (holder->GetAuraByEffectIndex(eff_index))
+ target->RemoveAura(holder->GetAuraByEffectIndex(eff_index), AURA_REMOVE_BY_STACK);
+
PersistentAreaAura* Aur = new PersistentAreaAura(spellInfo, eff_index, NULL, holder, target, i_dynobject.GetCaster());
holder->AddAura(Aur, eff_index);
if (addedToExisting)
{
target->AddAuraToModList(Aur);
holder->SetInUse(true);
Aur->ApplyModifier(true,true);
holder->SetInUse(false);
}
else
target->AddSpellAuraHolder(holder);