I've finally had to "upgrade" to OS X 10.7 (which I REALLY HATE). Some of the object methods in my code have been deprecated. One that is used in my code to save data in files is: [NSSavePanel* filename]; According to the Documentation you should use [NSSavePanel URL] instead. A lot of objects can use a URL instead of an NSString - for example [NSImage writeToURL: atomically:]; One method that still needs an NSString is the NSKeyedArchiver method archiveRootObject:toFile: - file is an NSString. Theoretically one could get the NSSavePanel's URL using [NSSavePanel URL] and then get an NSString using some NSString method like + stringWithContentsOfURL:usedEncoding:error: initWithContentsOfURL:usedEncoding:error: For some reason these return a nil NSString and error looks like an NSCocoaDomainError, code 260. Perhaps one of you could suggest how I might continue to use archiveRootObject:toFile: without relying on the deprecated method [NSSavePanel filename].