I'm working on what is basically a diagramming tool at work and needed to add undo/redo capability. What a pain. I ended up doing it the easy brute force way. I basically save off the whole project ...