add undo/redo patch submitted by Jens Oberender