Steps to reproduce: 1 - type some text into a text area 2 - call [element setValue:@"some text"] on the text area in question 3 - hit undo. expected results... should be able to revert to the text that was originally entered. actual results... You undo only to the text set via the setValue: call.