Hey again fellow Obj-C programmers. I'm on Chapter 7 of Aaron Hillegass' book, and have been trekking along just fine until this point. I can't, for the life of me, understand why there are so many steps just to add undo capabilities to an app. The author seemed to (in previous chapters) explain his steps very thoroughly, but now seems to be just winging out methods left and right. (And NSEnumerator? He just throws it in the code without even mentioning what it does, let alone what it is!) So I guess what I'm looking for is a better explanation of NSUndoManager and the methods you need to implement... I've been scouring the web, but have been having trouble finding any examples. Does anyone here have a tutorial-type thing they personally prefer for undo's in Cocoa? Thanks a bunch! P.S. I'm also getting an error when I compile the RaiseMan program according to Aaron's code... It reads: Code: 2006-07-30 21:46:28.972 RaiseMan *** -observeValueForKeyPath:ofObject:change:context: only defined for abstract class. Define -[MyDocument observeValueForKeyPath:ofObject:change:context:]! Any ideas on this bugger? Thanks again everyone, for all your help.