diff --git a/ChangeLog b/ChangeLog
index f9437bed6be8a2bace182af16a5e77ad939becc8..aeba70172542e6f7c996d34b8650062aa9e8b6aa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,9 @@
 CVS code -
 - files.c:
   do_writeout()
-	- Prompt the user if we're trying to save an existing file under
-	  a different name. (DLR; suggested by Jean-Philippe Guérard)
+	- Prompt the user if we're trying to save an existing file (and
+	  not just a selection of it) under a different name. (DLR;
+	  suggested by Jean-Philippe Guérard)
 - global.c:
   shortcut_init()
 	- Allow WHEREIS_NEXT_KEY to be used in view mode. (DLR)
@@ -16,7 +17,6 @@ CVS code -
 	  generated at the statusbar prompt sometimes on Linux. (DLR)
 - nano.spec.in:
 	- Update for the 1.3 branch of nano. (DLR)
-
 - THANKS:
 	- Add Danilo Segan, for the Serbian translation.
 
diff --git a/src/files.c b/src/files.c
index dd1def3dc726f7330f8ff4fdf01e5b25b6aadaba..00ce82a57bb30c416ea6de77a6f7eabdcc6f5fbb 100644
--- a/src/files.c
+++ b/src/files.c
@@ -1834,15 +1834,19 @@ int do_writeout(const char *path, int exiting, int append)
 	if (append == 0 && strcmp(answer, filename)) {
 	    struct stat st;
 
-	    if (!stat(answer, &st))
+	    if (!stat(answer, &st)) {
 		i = do_yesno(0, 0, _("File exists, OVERWRITE ?"));
-	    else if (filename[0] != '\0')
+		if (i == 0 || i == -1)
+		    continue;
+	    } else if (filename[0] != '\0'
+#ifndef NANO_SMALL
+		&& (!ISSET(MARK_ISSET) || exiting)
+#endif
+							) {
 		i = do_yesno(0, 0, _("Save file under DIFFERENT NAME ?"));
-	    else
-		i = 1;
-
-	    if (i == 0 || i == -1)
-		continue;
+		if (i == 0 || i == -1)
+		    continue;
+	    }
 	}
 
 #ifndef NANO_SMALL