SetSpell_Detour() isn't checking for a NULL return value on GetSpellByID(). Prior to the change on the 15th (CVS history) GetSpellByID would return NULL for any spell with a value greater then 0x1388. Spirit's Touch is spell 0x13BC, 0x13BC > 0x1388 hence NULL, hence deferencing a NULL Pointer, hence...