I am guessing the NPCs are buffing with Haste when the aggro happens. It is most likely due to this block of code:
spells.cpp
Code:
// slow and haste spells
if(SpecAttacks[UNSLOWABLE] && IsEffectInSpell(spell_id, SE_AttackSpeed))
{
mlog(SPELLS__RESISTS, "We are immune to Slow spells.");
caster->Message_StringID(MT_Shout, IMMUNE_ATKSPEED);
sint32 aggro = CheckAggroAmount(spell_id);
if(aggro > 0) {
AddToHateList(caster, aggro);
} else {
AddToHateList(caster, 1);
}
return true;
}
There probably needs to be a check added to see if the spell is a buff or debuff or if the SE_AttackSpeed amount being changed is positive or negative.