Hello, I have an document based application made up of a custom "app controller", myDocument, and a custom "modeling" object. Most of the code is in the appcontroller class, which is instantiated inside InterfaceBuilder and connects to the UI and handles their actions, updates the UI and manipulates it's own modeling system. The custom data object as well as my custom controller confirm to NSCoding. I searched this website earlier and thought it was maybe because I was trying to archive NSMutableDictionaries, so I replaced that part of the saving by converting them into two synchronous (I hope) NSMutableArrays and archiving those. However, I'm now finding out through NSLog statements that "encodeWithCoder:" on my custom app controller is NOT getting called. My document object is connected to my custom controller, which is instantiated inside interface builder, by the way of an IBOutlet. It then calls "archivedDataWithRootObject:" passing my custom controller as its argument. According to my knowledge "encodeWithCoder:" should get called on my custom controller but it's not. Any help is greatly appreciated.