hmm, wouldnt you just need to record the last, say three user actions and the redo button calls that actions when pressed? maybe i see this to simple?