diff --git a/src/files.c b/src/files.c
index fc2c53908e561ddc1754c2d70ce5589c00ff605c..12e8b181f878c325ad49d5a145437cfe7670fcce 100644
--- a/src/files.c
+++ b/src/files.c
@@ -1429,8 +1429,13 @@ int write_file(const char *name, FILE *f_open, bool tmp, append_type
 	}
 
 	/* If we're on the last line of the file, don't write a newline
-	 * character after it. */
-	if (fileptr != openfile->filebot) {
+	 * character after it.  If the last line of the file is blank,
+	 * this means that zero bytes are written, in which case we
+	 * don't count the last line in the total lines written. */
+	if (fileptr == openfile->filebot) {
+	    if (fileptr->data[0] == '\0')
+		lineswritten--;
+	} else {
 #ifndef NANO_SMALL
 	    if (openfile->fmt == DOS_FILE || openfile->fmt ==
 		MAC_FILE) {