Hello,

I've got a big object that holds references to other objects which,
in turn, hold references to other objects, which.....

Now I change this object, but need a possibility to revert the change. This could be 
achieved by deep-copying the object, but that's too expensive (changes
are mostly minor and 99% copy operations will be redundant).

Is there any simple solution to this, employing the copy-on-write
principle?

--
be9