Index: Source/NSDocument.m
===================================================================
--- Source/NSDocument.m	(revision 25497)
+++ Source/NSDocument.m	(working copy)
@@ -228,18 +228,19 @@
 
 - (void)setFileName: (NSString *)fileName
 {
+  NSURL *fileUrl = fileName ? [NSURL fileURLWithPath: fileName] : nil;
+
   // This check is to prevent super calls from recursing.
   if (!OVERRIDDEN(setFileName:))
     {
-      [self setFileURL: [NSURL fileURLWithPath: fileName]];
+      [self setFileURL: fileUrl];
     }
   else
     {
       ASSIGN(_file_name, fileName);
-      ASSIGN(_file_url, [NSURL fileURLWithPath: fileName]);
+      ASSIGN(_file_url, fileUrl);
       [self setLastComponentOfFileName: [_file_name lastPathComponent]];
     }
-  [self setLastComponentOfFileName: [_file_name lastPathComponent]];
 }
 
 - (NSString *)fileType
@@ -256,7 +257,8 @@
 {
   if (OVERRIDDEN(fileName))
     {
-      return [NSURL fileURLWithPath: [self fileName]];
+      NSString *fileName = [self fileName];
+      return fileName ? [NSURL fileURLWithPath: fileName] : nil;
     }
   else
     {
@@ -933,11 +935,11 @@
   if (OVERRIDDEN(writeToFile:ofType:originalFile:saveOperation:))
     {
       if (saveOp == NSAutosaveOperation)
-        {
-          *error = nil; 
-          saveOp = NSSaveToOperation;
-        }
+	{
+	  saveOp = NSSaveToOperation;
+	}
 
+      *error = nil;
       return [self writeToFile: [url path] 
 		   ofType: type 
 		   originalFile: [orig path] 
@@ -1611,11 +1613,10 @@
 		  selector:@selector(_changeWasUndone:)
 		  name: NSUndoManagerDidUndoChangeNotification
 		  object:_undo_manager];
-	  [[NSNotificationCenter defaultCenter]
-	    addObserver: self
-	    selector:@selector(_changeWasRedone:)
-	    name: NSUndoManagerDidRedoChangeNotification
-	    object:_undo_manager];
+	  [center addObserver: self
+		  selector:@selector(_changeWasRedone:)
+		  name: NSUndoManagerDidRedoChangeNotification
+		  object:_undo_manager];
         }
     }
 }
