Fresh set of eyes...
Thanks Mark... I had tried that a few times but kept getting recursion errors, but then (smack me in the head with a big stick), I never commented out the before.rewrite calls to the functions which was causing the issue.
This is one of those projects where I've received the final revision of the user specifications 18 times now and I think that with all the changes I was going crazy.
Thanks to all of you that responded. I did learn some things about the update.occ() as well.