diff --git a/src/files.c b/src/files.c
index 752d94ae7639db2ce91aa2c6b1038b4b65d937b5..adbd8e65789187dafd82939f9726c82574b37721 100644
--- a/src/files.c
+++ b/src/files.c
@@ -1908,11 +1908,12 @@ bool do_writeout(bool exiting)
 		full_filename = get_full_path(openfile->filename);
 		name_exists = (stat((full_answer == NULL) ? answer :
 			full_answer, &st) != -1);
-		do_warning = (name_exists ||
-			(openfile->filename[0] != '\0' &&
-			strcmp((full_answer == NULL) ? answer :
-			full_answer, (full_filename == NULL) ?
-			openfile->filename : full_filename) != 0));
+		if (openfile->filename[0] == '\0')
+		    do_warning = name_exists;
+		else
+		    do_warning = (strcmp((full_answer == NULL) ?
+			answer : full_answer, (full_filename == NULL) ?
+			openfile->filename : full_filename) != 0);
 
 		/* Convert nulls to newlines.  answer_len is the
 		 * string's real length. */