Keg: Oh, yeah. I blissfully forgot about it for a bit.

I call it machete/bow... I don't know if we ever fixed it... But I feel quite confident that it's due to the player dropping an item but not (for whatever number of reasons...) setting the oPlayer instance variable 'holding' to none. Then, when the player whips, the attack code checks and find the player IS 'holding' something but that item actually doesn't exists (was destroyed or deactivated), so the item can't have it's own 'type' variable to check if it's a machete or bow... The best fix would be to make sure the 'holding' variable always gets cleared. Second best would be to put some code to check if the item 'type' variable exists.
Twitch: NP Buddy! If you get the time eventually and want to giver a try, post to this forum thread to contact me. I check here more than my email ;p. I'll give you current code and try to best explain what needs doing.