And there is a small NULL pointer inconsistency problem: When there are no changes yet, cur=0x0 but as soon as there are changes, I can do undo as often as I want, I will never be able to get back to 0x0. Well, that shouldn't be a problem for me now that I am aware of it, but it's quite an interesting side-effect of those linked lists and their current pointers that I didn't noticed before.