diff --git a/src/files.c b/src/files.c
index ca0c3a8..d240291 100644
--- a/src/files.c
+++ b/src/files.c
@@ -538,7 +538,9 @@
 #endif
 		"./");
 
-    if (i != -1) {
+    if (i < 0) {
+	statusbar(_("Cancelled"));
+    } else {
 	int old_current_x = current_x;
 
 	ans = mallocstrcpy(ans, answer);
@@ -599,8 +601,7 @@
 
 	/* Refresh the screen. */
 	edit_refresh();
-    } else
-	statusbar(_("Cancelled"));
+    }
 
     free(ans);
 }
@@ -1395,10 +1396,8 @@
 	/* The temp file name we write to on prepend. */
 
     assert(name != NULL);
-    if (name[0] == '\0') {
-	statusbar(_("Cancelled"));
+    if (name[0] == '\0')
 	return -1;
-    }
     if (!tmp)
 	titlebar(NULL);
 
@@ -1765,7 +1764,7 @@
 }
 #endif /* !NANO_SMALL */
 
-int do_writeout(int exiting)
+int do_writeout(bool exiting)
 {
     int i;
     int append = 0;
@@ -1844,7 +1843,7 @@
 	free(ans);
 #endif
 
-	if (i == -1) {
+	if (i < 0) {
 	    statusbar(_("Cancelled"));
 	    display_main_list();
 	    return -1;
diff --git a/src/nano.c b/src/nano.c
index 7c74982..f42e4ab 100644
--- a/src/nano.c
+++ b/src/nano.c
@@ -173,7 +173,7 @@
 
     ret = get_next_filename(die_filename);
     if (ret[0] != '\0')
-	failed = -1 == write_file(ret, TRUE, FALSE, TRUE);
+	failed = (write_file(ret, TRUE, FALSE, TRUE) == -1);
 
     if (!failed)
 	fprintf(stderr, _("\nBuffer written to %s\n"), ret);
diff --git a/src/proto.h b/src/proto.h
index 3f9061c..8c258d2 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -217,7 +217,7 @@
 #ifndef NANO_SMALL
 int write_marked(const char *name, int tmp, int append);
 #endif
-int do_writeout(int exiting);
+int do_writeout(bool exiting);
 void do_writeout_void(void);
 char *real_dir_from_tilde(const char *buf);
 #ifndef DISABLE_TABCOMP
