In Attack.cpp line ~1,165
in Client:

eath()
this line :
entity_list.QueueClients(this, &app);
Shouldnt it be:
entity_list.QueueClients(this,app); ?
I am at work and just going over the code.
Im thinking maybe its a problem in Corpse::Corpse ? If someone could post older versions of the functions to compare with? Thanks
Also, consider going through NPC:

eath and seeing hwo the two corpses are handled and whats different? Just grasping at straws here..
Was addcorpse function changed around the time of rewarditem code? I see the arguments that get passed got simplified alot, could be something there..
looking at npc::death.. Shouldnt the entity_listQueueClients(this,app); in Client:
eath be entitylist.QueueClients(other,app); ?