1. A computer implemented method for providing reversibility of an operation performed by a user of an application program and associated with a modification to an object model of the application program, the method comprising: determining the top item of a first undo stack of the application program; saving the top item; copying the top item to a second replicated undo stack; and placing the top item of the second replicated undo stack back onto the first undo stack.