diff -ur nano/doc/man/nanorc.5 nano-fixed/doc/man/nanorc.5
--- nano/doc/man/nanorc.5	2015-11-17 09:29:30.505172346 -0600
+++ nano-fixed/doc/man/nanorc.5	2015-11-17 18:00:39.595058104 -0600
@@ -20,7 +20,7 @@
 .\"   Documentation License along with this program.  If not, see
 .\"   <http://www.gnu.org/licenses/>.
 .\"
-.TH NANORC 5 "version 2.4.3" "August 2015"
+.TH NANORC 5 "version 2.4.3" "November 2015"
 .\" Please adjust this date whenever revising the manpage.
 .\"
 .SH NAME
@@ -387,6 +387,9 @@
 .B writeout
 Writes the current buffer to disk, asking for a name.
 .TP
+.B rejectfile
+Exits from the program without writing the current buffer to disk.
+.TP
 .B savefile
 Writes the current file to disk without prompting or warning.
 .TP
diff -ur nano/doc/texinfo/nano.texi nano-fixed/doc/texinfo/nano.texi
--- nano/doc/texinfo/nano.texi	2015-11-17 09:29:30.513172346 -0600
+++ nano-fixed/doc/texinfo/nano.texi	2015-11-17 18:00:58.019057435 -0600
@@ -7,7 +7,7 @@
 @smallbook
 @set EDITION 0.3
 @set VERSION 2.4.3
-@set UPDATED August 2015
+@set UPDATED November 2015
 
 @dircategory Editors
 @direntry
@@ -950,6 +950,9 @@
 @item writeout
 Writes the current buffer to disk, asking for a name.
 
+@item rejectfile
+Exits from the program without writing the current buffer to disk.
+
 @item savefile
 Writes the current file to disk without prompting or warning.
 
diff -ur nano/src/browser.c nano-fixed/src/browser.c
--- nano/src/browser.c	2015-11-17 09:29:30.389172350 -0600
+++ nano-fixed/src/browser.c	2015-11-17 17:40:05.610102936 -0600
@@ -339,7 +339,7 @@
 
 	    /* Start over again with the new path value. */
 	    goto change_browser_directory;
-	} else if (func == do_exit) {
+	} else if (func == do_exit_void) {
 	    /* Exit from the file browser. */
 	    break;
 	}
@@ -532,7 +532,7 @@
 		return do_help_void;
 	    case 'E':
 	    case 'e':
-		return do_exit;
+		return do_exit_void;
 	    case 'G':
 	    case 'g':
 		return goto_dir_void;
diff -ur nano/src/global.c nano-fixed/src/global.c
--- nano/src/global.c	2015-11-17 09:29:30.385172351 -0600
+++ nano-fixed/src/global.c	2015-11-17 18:15:45.987025174 -0600
@@ -619,6 +619,13 @@
 #ifndef DISABLE_BROWSER
     const char *nano_tofiles_msg = N_("Go to file browser");
 #endif
+    const char *nano_reject_file_msg =
+#ifndef DISABLE_MULTIBUFFER
+	N_("Close the current file buffer without saving / Exit from nano without saving")
+#else
+	N_("Exit from nano without saving")
+#endif
+	;
 #ifndef NANO_TINY
     const char *nano_dos_msg = N_("Toggle the use of DOS format");
     const char *nano_mac_msg = N_("Toggle the use of Mac format");
@@ -669,13 +676,13 @@
     add_to_funcs(do_cancel, ((MMOST & ~MMAIN & ~MBROWSER) | MYESNO),
 	N_("Cancel"), IFSCHELP(nano_cancel_msg), TOGETHER, VIEW);
 
-    add_to_funcs(do_exit, MMAIN,
+    add_to_funcs(do_exit_void, MMAIN,
 	exit_tag, IFSCHELP(nano_exit_msg), TOGETHER, VIEW);
     /* Remember the entry for Exit, to be able to replace it with Close. */
     exitfunc = tailfunc;
 
 #ifndef DISABLE_BROWSER
-    add_to_funcs(do_exit, MBROWSER,
+    add_to_funcs(do_exit_void, MBROWSER,
 	exit_tag, IFSCHELP(nano_exitbrowser_msg), TOGETHER, VIEW);
 #endif
 
@@ -722,7 +729,7 @@
 #ifndef DISABLE_HELP
     /* The description ("x") and blank_after (0) are irrelevant,
      * because the help viewer does not have a help text. */
-    add_to_funcs(do_exit, MHELP, exit_tag, "x", 0, VIEW);
+    add_to_funcs(do_exit_void, MHELP, exit_tag, "x", 0, VIEW);
 
     add_to_funcs(total_refresh, MHELP, refresh_tag, "x", 0, VIEW);
 
@@ -949,6 +956,9 @@
     add_to_funcs(gototext_void, MGOTOLINE,
 	N_("Go To Text"), IFSCHELP(nano_whereis_msg), BLANKAFTER, VIEW);
 
+    add_to_funcs(do_reject_file, MWRITEFILE,
+	N_("Reject File"), IFSCHELP(nano_reject_file_msg), TOGETHER, NOVIEW);
+
 #ifndef NANO_TINY
      add_to_funcs(dos_format_void, MWRITEFILE,
 	N_("DOS Format"), IFSCHELP(nano_dos_msg), TOGETHER, NOVIEW);
@@ -1018,8 +1028,8 @@
 
     add_to_sclist(MMOST, "^G", do_help_void, 0);
     add_to_sclist(MMOST, "F1", do_help_void, 0);
-    add_to_sclist(MMAIN|MHELP|MBROWSER, "^X", do_exit, 0);
-    add_to_sclist(MMAIN|MHELP|MBROWSER, "F2", do_exit, 0);
+    add_to_sclist(MMAIN|MHELP|MBROWSER, "^X", do_exit_void, 0);
+    add_to_sclist(MMAIN|MHELP|MBROWSER, "F2", do_exit_void, 0);
     add_to_sclist(MMAIN, "^O", do_writeout_void, 0);
     add_to_sclist(MMAIN, "F3", do_writeout_void, 0);
     add_to_sclist(MMAIN, "^R", do_insertfile_void, 0);
@@ -1192,6 +1202,7 @@
     add_to_sclist(MBROWSER, "M-G", goto_dir_void, 0);
     add_to_sclist(MBROWSER, "F13", goto_dir_void, 0);
 #endif
+    add_to_sclist(MWRITEFILE, "M-R", do_reject_file, 0);
     add_to_sclist(MWRITEFILE, "M-D", dos_format_void, 0);
     add_to_sclist(MWRITEFILE, "M-M", mac_format_void, 0);
     if (!ISSET(RESTRICTED)) {
@@ -1205,14 +1216,14 @@
 	add_to_sclist(MINSERTFILE|MEXTCMD, "^X", flip_execute_void, 0);
 	add_to_sclist(MINSERTFILE|MEXTCMD, "M-F", new_buffer_void, 0);
     }
-    add_to_sclist(MHELP|MBROWSER, "^C", do_exit, 0);
+    add_to_sclist(MHELP|MBROWSER, "^C", do_exit_void, 0);
     /* Allow exiting from the file browser and the help viewer with
      * the same key as they were entered. */
 #ifndef DISABLE_BROWSER
-    add_to_sclist(MBROWSER, "^T", do_exit, 0);
+    add_to_sclist(MBROWSER, "^T", do_exit_void, 0);
 #endif
 #ifndef DISABLE_HELP
-    add_to_sclist(MHELP, "^G", do_exit, 0);
+    add_to_sclist(MHELP, "^G", do_exit_void, 0);
     add_to_sclist(MHELP, "Home", do_first_line, 0);
     add_to_sclist(MHELP, "End", do_last_line, 0);
 #endif
@@ -1327,7 +1338,9 @@
     if (!strcasecmp(input, "cancel"))
 	s->scfunc = do_cancel;
     else if (!strcasecmp(input, "exit"))
-	s->scfunc = do_exit;
+	s->scfunc = do_exit_void;
+    else if (!strcasecmp(input, "rejectfile"))
+	s->scfunc = do_reject_file;
     else if (!strcasecmp(input, "writeout"))
 	s->scfunc = do_writeout_void;
 #ifndef NANO_TINY
diff -ur nano/src/help.c nano-fixed/src/help.c
--- nano/src/help.c	2015-11-17 09:29:30.391172350 -0600
+++ nano-fixed/src/help.c	2015-11-17 17:51:59.978076982 -0600
@@ -159,7 +159,7 @@
 	} else if (func == do_last_line) {
 	    if (line + (editwinrows - 1) < last_line)
 		line = last_line - (editwinrows - 1);
-	} else if (func == do_exit) {
+	} else if (func == do_exit_void) {
 	    /* Exit from the help viewer. */
 	    break;
 	}
@@ -484,7 +484,7 @@
 		return do_page_up;
 	    case 'E':
 	    case 'e':
-		return do_exit;
+		return do_exit_void;
 	}
     }
     return func_from_key(kbinput);
diff -ur nano/src/nano.c nano-fixed/src/nano.c
--- nano/src/nano.c	2015-11-17 09:29:30.391172350 -0600
+++ nano-fixed/src/nano.c	2015-11-17 18:02:14.243054665 -0600
@@ -1103,19 +1103,20 @@
     curs_set(1);
 }
 
-/* If the current file buffer has been modified, and the TEMP_FILE flag
- * isn't set, ask whether or not to save the file buffer.  If the
- * TEMP_FILE flag is set and the current file has a name, save it
+/* If force is TRUE, exit from nano unconditionally, without saving the
+ * file buffer.  If the current file buffer has been modified, and the
+ * TEMP_FILE flag isn't set, ask whether or not to save the file buffer.
+ * If the TEMP_FILE flag is set and the current file has a name, save it
  * unconditionally.  Then, if more than one file buffer is open, close
  * the current file buffer and switch to the next one.  If only one file
  * buffer is open, exit from nano. */
-void do_exit(void)
+void do_exit(bool force)
 {
     int i;
 
-    /* If the file hasn't been modified, pretend the user chose not to
-     * save. */
-    if (!openfile->modified)
+    /* If force is TRUE, the user chose not to save.  If the file hasn't
+     * been modified, pretend the user chose not to save. */
+    if (force || !openfile->modified)
 	i = 0;
     /* If the TEMP_FILE flag is set and the current file has a name,
      * pretend the user chose to save. */
@@ -1157,10 +1158,23 @@
     display_main_list();
 }
 
+/* Close the current buffer or exit from nano, saving the file buffer if
+ * necessary. */
+void do_exit_void(void)
+{
+    do_exit(FALSE);
+}
+
+/* Close the current buffer or exit from nano, without saving the file
+ * buffer at all. */
+void do_reject_file(void)
+{
+    do_exit(TRUE);
+}
+
 /* Another placeholder for function mapping. */
 void do_cancel(void)
 {
-    ;
 }
 
 static struct sigaction pager_oldaction, pager_newaction;
diff -ur nano/src/proto.h nano-fixed/src/proto.h
--- nano/src/proto.h	2015-11-17 09:29:30.388172351 -0600
+++ nano-fixed/src/proto.h	2015-11-17 17:50:03.162081226 -0600
@@ -476,7 +476,9 @@
 int more_space(void);
 int no_help(void);
 void no_current_file_name_warning(void);
-void do_exit(void);
+void do_exit(bool force);
+void do_exit_void(void);
+void do_reject_file(void);
 void signal_init(void);
 RETSIGTYPE handle_hupterm(int signal);
 RETSIGTYPE do_suspend(int signal);
diff -ur nano/src/rcfile.c nano-fixed/src/rcfile.c
--- nano/src/rcfile.c	2015-11-17 09:29:30.386172351 -0600
+++ nano-fixed/src/rcfile.c	2015-11-17 17:52:32.170075813 -0600
@@ -1045,7 +1045,7 @@
     subnfunc *f;
     int v;
 #define VITALS 5
-    void (*vitals[VITALS])(void) = { do_exit, do_exit, do_cancel, do_cancel, do_cancel };
+    void (*vitals[VITALS])(void) = { do_exit_void, do_exit_void, do_cancel, do_cancel, do_cancel };
     int inmenus[VITALS] = { MMAIN, MHELP, MWHEREIS, MREPLACE, MGOTOLINE };
 
     for  (v = 0; v < VITALS; v++) {
