If mutation details are indeed the culprit, you might be better off turning them into a formulation instead of fixing the problem. Just store an array of values representing the event, and interpret them as a readable string when the user wants to look at them.
Yea yea. I'm not going to bite that off right now. Implementing that in a backward compatable manner is more work than you think. Someday though.
Think I found it anyway. Hopefully I can post a buddy tomorrow before I head out for some RnR...