diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 30f9e9d..05baa7e 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1636,10 +1636,13 @@
 /*
  * Return TRUE if any buffer was changed and cannot be abandoned.
  * That changed buffer becomes the current buffer.
+ * When "unload" is true the current buffer is unloaded instead of making it
+ * hidden.  This is used for ":q!".
  */
     int
-check_changed_any(hidden)
+check_changed_any(hidden, unload)
     int		hidden;		/* Only check hidden buffers */
+    int		unload;
 {
     int		ret = FALSE;
     buf_T	*buf;
@@ -1750,7 +1753,7 @@
 
     /* Open the changed buffer in the current window. */
     if (buf != curbuf)
-	set_curbuf(buf, DOBUF_GOTO);
+	set_curbuf(buf, unload ? DOBUF_UNLOAD : DOBUF_GOTO);
 
 theend:
     vim_free(bufnrs);
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 648cc0d..ac713dc 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7143,7 +7143,7 @@
 				       | (eap->forceit ? CCGD_FORCEIT : 0)
 				       | CCGD_EXCMD))
 	    || check_more(TRUE, eap->forceit) == FAIL
-	    || (only_one_window() && check_changed_any(eap->forceit)))
+	    || (only_one_window() && check_changed_any(eap->forceit, TRUE)))
     {
 	not_exiting();
     }
@@ -7214,7 +7214,7 @@
 #endif
 
     exiting = TRUE;
-    if (eap->forceit || !check_changed_any(FALSE))
+    if (eap->forceit || !check_changed_any(FALSE, FALSE))
 	getout(0);
     not_exiting();
 }
@@ -7609,7 +7609,7 @@
 		    || curbufIsChanged())
 		&& do_write(eap) == FAIL)
 	    || check_more(TRUE, eap->forceit) == FAIL
-	    || (only_one_window() && check_changed_any(eap->forceit)))
+	    || (only_one_window() && check_changed_any(eap->forceit, FALSE)))
     {
 	not_exiting();
     }
diff --git a/src/gui.c b/src/gui.c
index 0736522..ec732e0 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -825,7 +825,7 @@
 # endif
     /* If there are changed buffers, present the user with a dialog if
      * possible, otherwise give an error message. */
-    if (!check_changed_any(FALSE))
+    if (!check_changed_any(FALSE, FALSE))
 	getout(0);
 
     exiting = FALSE;
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index e543b0a..9967795 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -2003,7 +2003,7 @@
      * If there are changed buffers, present the user with
      * a dialog if possible, otherwise give an error message.
      */
-    shutdown_cancelled = check_changed_any(FALSE);
+    shutdown_cancelled = check_changed_any(FALSE, FALSE);
 
     exiting = FALSE;
     cmdmod = save_cmdmod;
diff --git a/src/os_unix.c b/src/os_unix.c
index d4a0f6d..3619636 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -7132,7 +7132,7 @@
 
     save_cmdmod = cmdmod;
     cmdmod.confirm = TRUE;
-    if (check_changed_any(FALSE))
+    if (check_changed_any(FALSE, FALSE))
 	/* Mustn't logout */
 	cancel_shutdown = True;
     cmdmod = save_cmdmod;
diff --git a/src/proto/ex_cmds2.pro b/src/proto/ex_cmds2.pro
index 0ac3e14..8875851 100644
--- a/src/proto/ex_cmds2.pro
+++ b/src/proto/ex_cmds2.pro
@@ -39,7 +39,7 @@
 void browse_save_fname __ARGS((buf_T *buf));
 void dialog_changed __ARGS((buf_T *buf, int checkall));
 int can_abandon __ARGS((buf_T *buf, int forceit));
-int check_changed_any __ARGS((int hidden));
+int check_changed_any __ARGS((int hidden, int unload));
 int check_fname __ARGS((void));
 int buf_write_all __ARGS((buf_T *buf, int forceit));
 int get_arglist __ARGS((garray_T *gap, char_u *str));
diff --git a/src/testdir/test31.in b/src/testdir/test31.in
index 7dc2334..3ba8431 100644
--- a/src/testdir/test31.in
+++ b/src/testdir/test31.in
@@ -69,6 +69,26 @@
 GA 4:all!
 :1wincmd w
 :w >>test.out
+:"
+:" test ":q!" and hidden buffer.
+:bw! Xtest1 Xtest2 Xtest3 Xtest4
+:sp Xtest1
+:wincmd w
+:bw!
+:set modified
+:bot sp Xtest2
+:set modified
+:bot sp Xtest3
+:set modified
+:wincmd t
+:hide
+:q!
+:w >>test.out
+:q!
+:w >>test.out
+:q!
+:call append(line('$'), "Oh, Not finished yet.")
+:w >>test.out
 :qa!
 ENDTEST
 
diff --git a/src/testdir/test31.ok b/src/testdir/test31.ok
index 185bdc7..3953197 100644
--- a/src/testdir/test31.ok
+++ b/src/testdir/test31.ok
@@ -10,3 +10,5 @@
 testtext 3 3 3
 testtext 1
 testtext 2 2 2
+testtext 3
+testtext 1
diff --git a/src/version.c b/src/version.c
index 48c8485..0ca4f8a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1037,
+/**/
     1036,
 /**/
     1035,
