My alternative approach (wiping the client's hatelist on FD), which also seems to work is:
Code:
Index: client.cpp
===================================================================
--- client.cpp (revision 34)
+++ client.cpp (working copy)
@@ -1921,6 +1921,7 @@
SetPet(0);
}
SetHorseId(0);
+ WhipeHateList();
entity_list.ClearFeignAggro(this);
forget_timer.Start(FeignMemoryDuration);
} else {