diff --git a/src/quickfix.c b/src/quickfix.c
index d7c0a88..1e25edb 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2818,7 +2818,7 @@
 }
 
 /*
- * Find a window displaying a Vim help file.
+ * Find a window displaying a Vim help file in the current tab page.
  */
     static win_T *
 qf_find_help_win(void)
@@ -2893,8 +2893,8 @@
 }
 
 /*
- * Find a non-quickfix window in the current tabpage using the given location
- * list stack.
+ * Find a non-quickfix window using the given location list stack in the
+ * current tabpage.
  * Returns NULL if a matching window is not found.
  */
     static win_T *
@@ -2910,7 +2910,7 @@
 }
 
 /*
- * Find a window containing a normal buffer
+ * Find a window containing a normal buffer in the current tab page.
  */
     static win_T *
 qf_find_win_with_normal_buf(void)
@@ -2981,7 +2981,7 @@
 
     if (win == NULL)
     {
-	// Find the window showing the selected file
+	// Find the window showing the selected file in the current tab page.
 	FOR_ALL_WINDOWS(win)
 	    if (win->w_buffer->b_fnum == qf_fnum)
 		break;
@@ -4394,8 +4394,8 @@
 }
 
 /*
- * Find a window displaying the quickfix/location stack 'qi'
- * Only searches in the current tabpage.
+ * Find a window displaying the quickfix/location stack 'qi' in the current tab
+ * page.
  */
     static win_T *
 qf_find_win(qf_info_T *qi)
@@ -4410,7 +4410,7 @@
 
 /*
  * Find a quickfix buffer.
- * Searches in windows opened in all the tabs.
+ * Searches in windows opened in all the tab pages.
  */
     static buf_T *
 qf_find_buf(qf_info_T *qi)
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index 24526bd..b242ac5 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -5636,4 +5636,40 @@
   cclose
 endfunc
 
+" Test for opening the quickfix window in two tab pages and then closing one
+" of the quickfix windows. This should not make the quickfix buffer unlisted.
+" (github issue #9300).
+func Test_two_qf_windows()
+  cexpr "F1:1:line1"
+  copen
+  tabnew
+  copen
+  call assert_true(&buflisted)
+  cclose
+  tabfirst
+  call assert_true(&buflisted)
+  let bnum = bufnr()
+  cclose
+  " if all the quickfix windows are closed, then buffer should be unlisted.
+  call assert_false(buflisted(bnum))
+  %bw!
+
+  " Repeat the test for a location list
+  lexpr "F2:2:line2"
+  lopen
+  let bnum = bufnr()
+  tabnew
+  exe "buffer" bnum
+  tabfirst
+  lclose
+  tablast
+  call assert_true(buflisted(bnum))
+  tabclose
+  lopen
+  call assert_true(buflisted(bnum))
+  lclose
+  call assert_false(buflisted(bnum))
+  %bw!
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 6d58175..13b6a0c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3759,
+/**/
     3758,
 /**/
     3757,
diff --git a/src/window.c b/src/window.c
index 4050ed0..47fb815 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2433,8 +2433,10 @@
 #endif
 
 #ifdef FEAT_QUICKFIX
-    // When the quickfix/location list window is closed, unlist the buffer.
-    if (win->w_buffer != NULL && bt_quickfix(win->w_buffer))
+    // When a quickfix/location list window is closed and the buffer is
+    // displayed in only one window, then unlist the buffer.
+    if (win->w_buffer != NULL && bt_quickfix(win->w_buffer)
+					&& win->w_buffer->b_nwindows == 1)
 	win->w_buffer->b_p_bl = FALSE;
 #endif
 
