Greg,
Thanks for verifying the problem. I also noted that eventObj.Source and eventObj.Site have the old value in them. However, both eventObj.Source and eventObj.Site appear to be disassociated from the original XML path. Their parent appears to be the document itself. For that reason, I can't traverse the tree to find out what item they were associated with and therefore, I can't remove the grade-item-number node that was added/updated in the grade-item-grp for that item.
I think I have a work-around that will allow me to complete the project. I think I can train the users to select the empty item from the list in order to remove both the grade and grade-item-number nodes. I will have access to both the NewValue and the OldValue and I think I can delete the node via code. Of course the OnAfterChange event will fire again after the delete, but I think I can set a flag to bypass the If eventObj.Operation = strDelete code. I'll let you know if that works.
Regards.