diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 78f2bcc..a1eecc5 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3016,7 +3016,7 @@
 #ifdef FEAT_TITLE
 	maketitle();
 #endif
-#ifdef FEAT_PROP_POPUP
+#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
 	if (WIN_IS_POPUP(curwin) && curwin->w_p_pvw && retval != FAIL)
 	    popup_set_title(curwin);
 #endif
diff --git a/src/fileio.c b/src/fileio.c
index 802b997..c15c7bd 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -3366,7 +3366,7 @@
     }
     status_redraw_all();
     redraw_tabline = TRUE;
-#ifdef FEAT_PROP_POPUP
+#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
     popup_update_preview_title();
 #endif
 }
diff --git a/src/popupmenu.c b/src/popupmenu.c
index f11ae94..76255aa 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -621,7 +621,7 @@
 #endif
 }
 
-#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
+#if (defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)) || defined(PROTO)
 /*
  * Position the info popup relative to the popup menu item.
  */
@@ -683,7 +683,7 @@
 #ifdef FEAT_QUICKFIX
     int	    prev_selected = pum_selected;
 #endif
-#ifdef FEAT_PROP_POPUP
+#if defined(FEAT_PROP_POPUP) && defined(FEAT_QUICKFIX)
     int	    has_info = FALSE;
 #endif
 
diff --git a/src/popupwin.c b/src/popupwin.c
index 5385296..dc09ef3 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -2386,8 +2386,10 @@
     if (wp != NULL)
     {
 	popup_show(wp);
+#ifdef FEAT_QUICKFIX
 	if (wp->w_popup_flags & POPF_INFO)
 	    pum_position_info_popup(wp);
+#endif
     }
 }
 
@@ -3686,6 +3688,13 @@
     return abort;
 }
 
+    int
+popup_is_popup(win_T *wp)
+{
+    return wp->w_popup_flags != 0;
+}
+
+#if defined(FEAT_QUICKFIX) || defined(PROTO)
 /*
  * Find an existing popup used as the preview window, in the current tab page.
  * Return NULL if not found.
@@ -3702,13 +3711,6 @@
     return NULL;
 }
 
-    int
-popup_is_popup(win_T *wp)
-{
-    return wp->w_popup_flags != 0;
-}
-
-#if defined(FEAT_QUICKFIX) || defined(PROTO)
 /*
  * Find an existing popup used as the info window, in the current tab page.
  * Return NULL if not found.
@@ -3729,19 +3731,28 @@
     void
 f_popup_findinfo(typval_T *argvars UNUSED, typval_T *rettv)
 {
+#ifdef FEAT_QUICKFIX
     win_T   *wp = popup_find_info_window();
 
     rettv->vval.v_number = wp == NULL ? 0 : wp->w_id;
+#else
+    rettv->vval.v_number = 0;
+#endif
 }
 
     void
 f_popup_findpreview(typval_T *argvars UNUSED, typval_T *rettv)
 {
+#ifdef FEAT_QUICKFIX
     win_T   *wp = popup_find_preview_window();
 
     rettv->vval.v_number = wp == NULL ? 0 : wp->w_id;
+#else
+    rettv->vval.v_number = 0;
+#endif
 }
 
+#if defined(FEAT_QUICKFIX) || defined(PROTO)
 /*
  * Create a popup to be used as the preview or info window.
  * NOTE: this makes the popup the current window, so that the file can be
@@ -3775,7 +3786,6 @@
     return OK;
 }
 
-#if defined(FEAT_QUICKFIX) || defined(PROTO)
 /*
  * Close any preview popup.
  */
@@ -3851,6 +3861,7 @@
     }
 }
 
+# if defined(FEAT_QUICKFIX) || defined(PROTO)
 /*
  * If there is a preview window, update the title.
  * Used after changing directory.
@@ -3863,5 +3874,6 @@
     if (wp != NULL)
 	popup_set_title(wp);
 }
+# endif
 
 #endif // FEAT_PROP_POPUP
diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index 71dd9f1..6a26189 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -9,7 +9,7 @@
 :so small.vim
 :set encoding=latin1
 :set noswapfile
-:if !has('python') | e! test.ok | wq! test.out | endif
+:if !has('python') || !has('quickfix') | e! test.ok | wq! test.out | endif
 :lang C
 :fun Test()
 :py import vim
diff --git a/src/testdir/test87.in b/src/testdir/test87.in
index 31de37b..8bd5bf7 100644
--- a/src/testdir/test87.in
+++ b/src/testdir/test87.in
@@ -3,7 +3,7 @@
 STARTTEST
 :so small.vim
 :set noswapfile
-:if !has('python3') | e! test.ok | wq! test.out | endif
+:if !has('python3') || !has('quickfix') | e! test.ok | wq! test.out | endif
 :lang C
 :fun Test()
 :py3 import vim
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 6d1897a..c16a679 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -1713,10 +1713,12 @@
 endfunc
 
 func Test_nocatch_wipe_dummy_buffer()
-  " Nasty autocommand: wipe buffer on any event.
-  au * x bwipe
-  call assert_fails('lv½ /x', 'E480')
-  au!
+  if has('quickfix')
+    " Nasty autocommand: wipe buffer on any event.
+    au * x bwipe
+    call assert_fails('lv½ /x', 'E480')
+    au!
+  endif
 endfunc
 
 function s:Before_test_dirchanged()
@@ -2291,6 +2293,8 @@
 endfunc
 
 func Test_autocmd_was_using_freed_memory()
+  CheckFeature quickfix
+
   pedit xx
   n x
   au WinEnter * quit
diff --git a/src/testdir/test_bufwintabinfo.vim b/src/testdir/test_bufwintabinfo.vim
index b4b8a10..bebaca6 100644
--- a/src/testdir/test_bufwintabinfo.vim
+++ b/src/testdir/test_bufwintabinfo.vim
@@ -1,109 +1,112 @@
 " Tests for the getbufinfo(), getwininfo() and gettabinfo() functions
+source check.vim
 
-function Test_getbufwintabinfo()
-    edit Xtestfile1
-    edit Xtestfile2
-    let buflist = getbufinfo()
-    call assert_equal(2, len(buflist))
-    call assert_match('Xtestfile1', buflist[0].name)
-    call assert_match('Xtestfile2', getbufinfo('Xtestfile2')[0].name)
-    call assert_equal([], getbufinfo(2016))
-    edit Xtestfile1
-    hide edit Xtestfile2
-    hide enew
-    call assert_equal(3, len(getbufinfo({'bufloaded':1})))
+func Test_getbufwintabinfo()
+  CheckFeature quickfix
 
-    set tabstop&vim
-    let b:editor = 'vim'
+  edit Xtestfile1
+  edit Xtestfile2
+  let buflist = getbufinfo()
+  call assert_equal(2, len(buflist))
+  call assert_match('Xtestfile1', buflist[0].name)
+  call assert_match('Xtestfile2', getbufinfo('Xtestfile2')[0].name)
+  call assert_equal([], getbufinfo(2016))
+  edit Xtestfile1
+  hide edit Xtestfile2
+  hide enew
+  call assert_equal(3, len(getbufinfo({'bufloaded':1})))
+
+  set tabstop&vim
+  let b:editor = 'vim'
+  let l = getbufinfo('%')
+  call assert_equal(bufnr('%'), l[0].bufnr)
+  call assert_equal('vim', l[0].variables.editor)
+  call assert_notequal(-1, index(l[0].windows, '%'->bufwinid()))
+
+  " Test for getbufinfo() with 'bufmodified'
+  call assert_equal(0, len(getbufinfo({'bufmodified' : 1})))
+  call setbufline('Xtestfile1', 1, ["Line1"])
+  let l = getbufinfo({'bufmodified' : 1})
+  call assert_equal(1, len(l))
+  call assert_equal(bufnr('Xtestfile1'), l[0].bufnr)
+
+  if has('signs')
+    call append(0, ['Linux', 'Windows', 'Mac'])
+    sign define Mark text=>> texthl=Search
+    exe "sign place 2 line=3 name=Mark buffer=" . bufnr('%')
     let l = getbufinfo('%')
-    call assert_equal(bufnr('%'), l[0].bufnr)
-    call assert_equal('vim', l[0].variables.editor)
-    call assert_notequal(-1, index(l[0].windows, '%'->bufwinid()))
+    call assert_equal(2, l[0].signs[0].id)
+    call assert_equal(3, l[0].signs[0].lnum)
+    call assert_equal('Mark', l[0].signs[0].name)
+    sign unplace *
+    sign undefine Mark
+    enew!
+  endif
 
-    " Test for getbufinfo() with 'bufmodified'
-    call assert_equal(0, len(getbufinfo({'bufmodified' : 1})))
-    call setbufline('Xtestfile1', 1, ["Line1"])
-    let l = getbufinfo({'bufmodified' : 1})
-    call assert_equal(1, len(l))
-    call assert_equal(bufnr('Xtestfile1'), l[0].bufnr)
+  only
+  let w1_id = win_getid()
+  new
+  let w2_id = win_getid()
+  tabnew | let w3_id = win_getid()
+  new | let w4_id = win_getid()
+  vert new | let w5_id = win_getid()
+  eval 'green'->setwinvar(0, 'signal')
+  tabfirst
+  let winlist = getwininfo()
+  call assert_equal(5, len(winlist))
+  call assert_equal(winwidth(1), winlist[0].width)
+  call assert_equal(1, winlist[0].wincol)
+  " tabline adds one row in terminal, not in GUI
+  let tablineheight = winlist[0].winrow == 2 ? 1 : 0
+  call assert_equal(tablineheight + 1, winlist[0].winrow)
 
-    if has('signs')
-	call append(0, ['Linux', 'Windows', 'Mac'])
-	sign define Mark text=>> texthl=Search
-	exe "sign place 2 line=3 name=Mark buffer=" . bufnr('%')
-	let l = getbufinfo('%')
-	call assert_equal(2, l[0].signs[0].id)
-	call assert_equal(3, l[0].signs[0].lnum)
-	call assert_equal('Mark', l[0].signs[0].name)
-	sign unplace *
-	sign undefine Mark
-	enew!
-    endif
+  call assert_equal(winbufnr(2), winlist[1].bufnr)
+  call assert_equal(winheight(2), winlist[1].height)
+  call assert_equal(1, winlist[1].wincol)
+  call assert_equal(tablineheight + winheight(1) + 2, winlist[1].winrow)
 
-    only
-    let w1_id = win_getid()
-    new
-    let w2_id = win_getid()
-    tabnew | let w3_id = win_getid()
-    new | let w4_id = win_getid()
-    vert new | let w5_id = win_getid()
-    eval 'green'->setwinvar(0, 'signal')
-    tabfirst
-    let winlist = getwininfo()
-    call assert_equal(5, len(winlist))
-    call assert_equal(winwidth(1), winlist[0].width)
-    call assert_equal(1, winlist[0].wincol)
-    " tabline adds one row in terminal, not in GUI
-    let tablineheight = winlist[0].winrow == 2 ? 1 : 0
-    call assert_equal(tablineheight + 1, winlist[0].winrow)
+  call assert_equal(1, winlist[2].winnr)
+  call assert_equal(tablineheight + 1, winlist[2].winrow)
+  call assert_equal(1, winlist[2].wincol)
 
-    call assert_equal(winbufnr(2), winlist[1].bufnr)
-    call assert_equal(winheight(2), winlist[1].height)
-    call assert_equal(1, winlist[1].wincol)
-    call assert_equal(tablineheight + winheight(1) + 2, winlist[1].winrow)
+  call assert_equal(winlist[2].width + 2, winlist[3].wincol)
+  call assert_equal(1, winlist[4].wincol)
 
-    call assert_equal(1, winlist[2].winnr)
-    call assert_equal(tablineheight + 1, winlist[2].winrow)
-    call assert_equal(1, winlist[2].wincol)
+  call assert_equal(1, winlist[0].tabnr)
+  call assert_equal(1, winlist[1].tabnr)
+  call assert_equal(2, winlist[2].tabnr)
+  call assert_equal(2, winlist[3].tabnr)
+  call assert_equal(2, winlist[4].tabnr)
 
-    call assert_equal(winlist[2].width + 2, winlist[3].wincol)
-    call assert_equal(1, winlist[4].wincol)
+  call assert_equal('green', winlist[2].variables.signal)
+  call assert_equal(w4_id, winlist[3].winid)
+  let winfo = w5_id->getwininfo()[0]
+  call assert_equal(2, winfo.tabnr)
+  call assert_equal([], getwininfo(3))
 
-    call assert_equal(1, winlist[0].tabnr)
-    call assert_equal(1, winlist[1].tabnr)
-    call assert_equal(2, winlist[2].tabnr)
-    call assert_equal(2, winlist[3].tabnr)
-    call assert_equal(2, winlist[4].tabnr)
+  call settabvar(1, 'space', 'build')
+  let tablist = gettabinfo()
+  call assert_equal(2, len(tablist))
+  call assert_equal(3, len(tablist[1].windows))
+  call assert_equal(2, tablist[1].tabnr)
+  call assert_equal('build', tablist[0].variables.space)
+  call assert_equal(w2_id, tablist[0].windows[0])
+  call assert_equal([], 3->gettabinfo())
 
-    call assert_equal('green', winlist[2].variables.signal)
-    call assert_equal(w4_id, winlist[3].winid)
-    let winfo = w5_id->getwininfo()[0]
-    call assert_equal(2, winfo.tabnr)
-    call assert_equal([], getwininfo(3))
+  tabonly | only
 
-    call settabvar(1, 'space', 'build')
-    let tablist = gettabinfo()
-    call assert_equal(2, len(tablist))
-    call assert_equal(3, len(tablist[1].windows))
-    call assert_equal(2, tablist[1].tabnr)
-    call assert_equal('build', tablist[0].variables.space)
-    call assert_equal(w2_id, tablist[0].windows[0])
-    call assert_equal([], 3->gettabinfo())
-
-    tabonly | only
-
-    lexpr ''
-    lopen
-    copen
-    let winlist = getwininfo()
-    call assert_false(winlist[0].quickfix)
-    call assert_false(winlist[0].loclist)
-    call assert_true(winlist[1].quickfix)
-    call assert_true(winlist[1].loclist)
-    call assert_true(winlist[2].quickfix)
-    call assert_false(winlist[2].loclist)
-    wincmd t | only
-endfunction
+  lexpr ''
+  lopen
+  copen
+  let winlist = getwininfo()
+  call assert_false(winlist[0].quickfix)
+  call assert_false(winlist[0].loclist)
+  call assert_true(winlist[1].quickfix)
+  call assert_true(winlist[1].loclist)
+  call assert_true(winlist[2].quickfix)
+  call assert_false(winlist[2].loclist)
+  wincmd t | only
+endfunc
 
 function Test_get_buf_options()
   let opts = bufnr()->getbufvar('&')
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index b205b9d..5634b98 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -1548,6 +1548,7 @@
 
 func Test_write_to_deleted_buffer()
   CheckExecutable echo
+  CheckFeature quickfix
 
   let job = job_start('echo hello', {'out_io': 'buffer', 'out_name': 'test_buffer', 'out_msg': 0})
   let bufnr = bufnr('test_buffer')
diff --git a/src/testdir/test_compiler.vim b/src/testdir/test_compiler.vim
index 6bb6027..1ce2718 100644
--- a/src/testdir/test_compiler.vim
+++ b/src/testdir/test_compiler.vim
@@ -1,9 +1,12 @@
 " Test the :compiler command
 
+source check.vim
+
 func Test_compiler()
   if !executable('perl')
     return
   endif
+  CheckFeature quickfix
 
   " $LANG changes the output of Perl.
   if $LANG != ''
diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim
index 07e5dde..4e29e7f 100644
--- a/src/testdir/test_edit.vim
+++ b/src/testdir/test_edit.vim
@@ -982,6 +982,8 @@
 endfunc
 
 func Test_edit_F1()
+  CheckFeature quickfix
+
   " Pressing <f1>
   new
   call feedkeys(":set im\<cr>\<f1>\<c-l>", 'tnix')
diff --git a/src/testdir/test_execute_func.vim b/src/testdir/test_execute_func.vim
index c2d504f..7934e60 100644
--- a/src/testdir/test_execute_func.vim
+++ b/src/testdir/test_execute_func.vim
@@ -1,6 +1,7 @@
 " test execute()
 
 source view_util.vim
+source check.vim
 
 func NestedEval()
   let nested = execute('echo "nested\nlines"')
@@ -104,6 +105,8 @@
 endfunc
 
 func Test_win_execute_update_ruler()
+  CheckFeature quickfix
+
   enew
   call setline(1, range(500))
   20
diff --git a/src/testdir/test_filter_cmd.vim b/src/testdir/test_filter_cmd.vim
index 144c7fa..543c563 100644
--- a/src/testdir/test_filter_cmd.vim
+++ b/src/testdir/test_filter_cmd.vim
@@ -1,5 +1,7 @@
 " Test the :filter command modifier
 
+source check.vim
+
 func Test_filter()
   edit Xdoesnotmatch
   edit Xwillmatch
@@ -89,6 +91,8 @@
 endfunction
 
 func Test_filter_commands()
+  CheckFeature quickfix
+
   let g:test_filter_a = 1
   let b:test_filter_b = 2
   let test_filter_c = 3
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 0f2a962..e3ec4aa 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -722,6 +722,8 @@
 endfunc
 
 func Test_menu()
+  CheckFeature quickfix
+
   " Check Help menu exists
   let help_menu = execute('menu Help')
   call assert_match('Overview', help_menu)
diff --git a/src/testdir/test_makeencoding.vim b/src/testdir/test_makeencoding.vim
index 09d36ea..55b2995 100644
--- a/src/testdir/test_makeencoding.vim
+++ b/src/testdir/test_makeencoding.vim
@@ -1,7 +1,9 @@
 " Tests for 'makeencoding'.
 
 source shared.vim
+source check.vim
 
+CheckFeature quickfix
 let s:python = PythonProg()
 if s:python == ''
   throw 'Skipped: python program missing'
diff --git a/src/testdir/test_mksession.vim b/src/testdir/test_mksession.vim
index a3712a3..dac7c54 100644
--- a/src/testdir/test_mksession.vim
+++ b/src/testdir/test_mksession.vim
@@ -355,6 +355,8 @@
 if has('terminal')
 
 func Test_mksession_terminal_shell()
+  CheckFeature quickfix
+
   terminal
   mksession! Xtest_mks.out
   let lines = readfile('Xtest_mks.out')
@@ -436,6 +438,8 @@
 endfunc
 
 func Test_mksession_terminal_restore_other()
+  CheckFeature quickfix
+
   terminal
   eval bufnr('%')->term_setrestore('other')
   mksession! Xtest_mks.out
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim
index a28a825..d45cf41 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -1,6 +1,7 @@
 " Test for various Normal mode commands
 
 source shared.vim
+source check.vim
 
 func Setup_NewWindow()
   10new
@@ -1240,6 +1241,8 @@
 endfunc
 
 func Test_normal25_tag()
+  CheckFeature quickfix
+
   " Testing for CTRL-] g CTRL-] g]
   " CTRL-W g] CTRL-W CTRL-] CTRL-W g CTRL-]
   h
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 21bd22a..5922efa 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -490,6 +490,8 @@
 " Test that 'completefunc' on Scratch buffer with preview window works when
 " it's OK.
 func Test_completefunc_with_scratch_buffer()
+  CheckFeature quickfix
+
   new +setlocal\ buftype=nofile\ bufhidden=wipe\ noswapfile
   set completeopt+=preview
   setlocal completefunc=DummyCompleteFive
@@ -665,6 +667,7 @@
 
 func Test_popup_and_window_resize()
   CheckFeature terminal
+  CheckFeature quickfix
   CheckNotGui
 
   let h = winheight(0)
@@ -697,14 +700,13 @@
 endfunc
 
 func Test_popup_and_preview_autocommand()
+  CheckFeature python
+  CheckFeature quickfix
+  if winheight(0) < 15
+    throw 'Skipped: window height insufficient'
+  endif
+
   " This used to crash Vim
-  if !has('python')
-    return
-  endif
-  let h = winheight(0)
-  if h < 15
-    return
-  endif
   new
   augroup MyBufAdd
     au!
@@ -735,9 +737,9 @@
 endfunc
 
 func Test_popup_and_previewwindow_dump()
-  if !CanRunVimInTerminal()
-    throw 'Skipped: cannot make screendumps'
-  endif
+  CheckScreendump
+  CheckFeature quickfix
+
   let lines =<< trim END
     set previewheight=9
     silent! pedit
@@ -804,9 +806,8 @@
 endfunc
 
 func Test_popup_position()
-  if !CanRunVimInTerminal()
-    throw 'Skipped: cannot make screendumps'
-  endif
+  CheckScreendump
+
   let lines =<< trim END
     123456789_123456789_123456789_a
     123456789_123456789_123456789_b
@@ -847,9 +848,8 @@
 endfunc
 
 func Test_popup_command()
-  if !CanRunVimInTerminal() || !has('menu')
-    throw 'Skipped: cannot make screendumps and/or menu feature missing'
-  endif
+  CheckScreendump
+  CheckFeature menu
 
   let lines =<< trim END
 	one two three four five
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index 9ecd245..6bfc6dd 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -2700,6 +2700,7 @@
 
 func Test_previewpopup()
   CheckScreendump
+  CheckFeature quickfix
 
   call writefile([
         \ "!_TAG_FILE_ENCODING\tutf-8\t//",
@@ -2871,6 +2872,7 @@
 
 func Test_popupmenu_info_border()
   CheckScreendump
+  CheckFeature quickfix
 
   let lines = Get_popupmenu_lines()
   call add(lines, 'set completepopup=height:4,highlight:InfoPopup')
@@ -2908,6 +2910,7 @@
 
 func Test_popupmenu_info_noborder()
   CheckScreendump
+  CheckFeature quickfix
 
   let lines = Get_popupmenu_lines()
   call add(lines, 'set completepopup=height:4,border:off')
@@ -2925,6 +2928,7 @@
 
 func Test_popupmenu_info_align_menu()
   CheckScreendump
+  CheckFeature quickfix
 
   let lines = Get_popupmenu_lines()
   call add(lines, 'set completepopup=height:4,border:off,align:menu')
@@ -2955,6 +2959,7 @@
 
 func Test_popupmenu_info_hidden()
   CheckScreendump
+  CheckFeature quickfix
 
   let lines = Get_popupmenu_lines()
   call add(lines, 'call InfoHidden()')
diff --git a/src/testdir/test_preview.vim b/src/testdir/test_preview.vim
index 91923fb..a85798b 100644
--- a/src/testdir/test_preview.vim
+++ b/src/testdir/test_preview.vim
@@ -1,4 +1,6 @@
 " Tests for the preview window
+source check.vim
+CheckFeature quickfix
 
 func Test_Psearch()
   " this used to cause ml_get errors
diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim
index 358ca81..1617c52 100644
--- a/src/testdir/test_startup.vim
+++ b/src/testdir/test_startup.vim
@@ -279,6 +279,8 @@
 
 " Test the '-q [errorfile]' argument.
 func Test_q_arg()
+  CheckFeature quickfix
+
   let source_file = has('win32') ? '..\memfile.c' : '../memfile.c'
   let after =<< trim [CODE]
     call writefile([&errorfile, string(getpos("."))], "Xtestout")
@@ -458,14 +460,16 @@
   call assert_equal('Too many edit arguments: "xxx"', out[1])
   call assert_equal('More info with: "vim -h"',       out[2])
 
-  " Detect invalid repeated arguments '-t foo -t foo", '-q foo -q foo'.
-  for opt in ['-t', '-q']
-    let out = split(system(GetVimCommand() .. repeat(' ' .. opt .. ' foo', 2)), "\n")
-    call assert_equal(1, v:shell_error)
-    call assert_match('^VIM - Vi IMproved .* (.*)$',              out[0])
-    call assert_equal('Too many edit arguments: "' .. opt .. '"', out[1])
-    call assert_equal('More info with: "vim -h"',                 out[2])
-  endfor
+  if has('quickfix')
+    " Detect invalid repeated arguments '-t foo -t foo", '-q foo -q foo'.
+    for opt in ['-t', '-q']
+      let out = split(system(GetVimCommand() .. repeat(' ' .. opt .. ' foo', 2)), "\n")
+      call assert_equal(1, v:shell_error)
+      call assert_match('^VIM - Vi IMproved .* (.*)$',              out[0])
+      call assert_equal('Too many edit arguments: "' .. opt .. '"', out[1])
+      call assert_equal('More info with: "vim -h"',                 out[2])
+    endfor
+  endif
 
   for opt in [' -cq', ' --cmd q', ' +', ' -S foo']
     let out = split(system(GetVimCommand() .. repeat(opt, 11)), "\n")
diff --git a/src/testdir/test_statusline.vim b/src/testdir/test_statusline.vim
index af05be5..1f705b8 100644
--- a/src/testdir/test_statusline.vim
+++ b/src/testdir/test_statusline.vim
@@ -7,6 +7,7 @@
 "   %X
 
 source view_util.vim
+source check.vim
 
 func s:get_statusline()
   return ScreenLines(&lines - 1, &columns)[0]
@@ -60,6 +61,8 @@
 endfunc
 
 func Test_statusline()
+  CheckFeature quickfix
+
   new Xstatusline
   only
   set laststatus=2
diff --git a/src/testdir/test_tabpage.vim b/src/testdir/test_tabpage.vim
index 020fe27..392eecb 100644
--- a/src/testdir/test_tabpage.vim
+++ b/src/testdir/test_tabpage.vim
@@ -1,8 +1,11 @@
 " Tests for tabpage
 
 source screendump.vim
+source check.vim
 
 function Test_tabpage()
+  CheckFeature quickfix
+
   bw!
   " Simple test for opening and closing a tab page
   tabnew
@@ -220,6 +223,8 @@
 endfunction
 
 function Test_tabpage_with_tab_modifier()
+  CheckFeature quickfix
+
   for n in range(4)
     tabedit
   endfor
diff --git a/src/testdir/test_tagjump.vim b/src/testdir/test_tagjump.vim
index 14c9903..14ba1f7 100644
--- a/src/testdir/test_tagjump.vim
+++ b/src/testdir/test_tagjump.vim
@@ -5,12 +5,16 @@
 
 " SEGV occurs in older versions.  (At least 7.4.1748 or older)
 func Test_ptag_with_notagstack()
+  CheckFeature quickfix
+
   set notagstack
   call assert_fails('ptag does_not_exist_tag_name', 'E426')
   set tagstack&vim
 endfunc
 
 func Test_cancel_ptjump()
+  CheckFeature quickfix
+
   set tags=Xtags
   call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
         \ "word\tfile1\tcmd1",
@@ -70,6 +74,8 @@
 endfunc
 
 func Test_tagjump_switchbuf()
+  CheckFeature quickfix
+
   set tags=Xtags
   call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
         \ "second\tXfile1\t2",
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index d958c36..d543ef7 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -175,6 +175,8 @@
 endfunc
 
 func Test_window_preview()
+  CheckFeature quickfix
+
   " Open a preview window
   pedit Xa
   call assert_equal(2, winnr('$'))
@@ -193,6 +195,8 @@
 endfunc
 
 func Test_window_preview_from_help()
+  CheckFeature quickfix
+
   filetype on
   call writefile(['/* some C code */'], 'Xpreview.c')
   help
@@ -438,6 +442,8 @@
 endfunc
 
 func Test_win_screenpos()
+  CheckFeature quickfix
+
   call assert_equal(1, winnr('$'))
   split
   vsplit
@@ -451,6 +457,8 @@
 endfunc
 
 func Test_window_jump_tag()
+  CheckFeature quickfix
+
   help
   /iccf
   call assert_match('^|iccf|',  getline('.'))
@@ -887,6 +895,8 @@
 endfunc
 
 func Test_win_splitmove()
+  CheckFeature quickfix
+
   edit a
   leftabove split b
   leftabove vsplit c
diff --git a/src/testdir/test_window_id.vim b/src/testdir/test_window_id.vim
index 8bf4ede..9c92fae 100644
--- a/src/testdir/test_window_id.vim
+++ b/src/testdir/test_window_id.vim
@@ -1,4 +1,5 @@
 " Test using the window ID.
+source check.vim
 
 func Test_win_getid()
   edit one
@@ -94,6 +95,8 @@
 endfunc
 
 func Test_win_getid_curtab()
+  CheckFeature quickfix
+
   tabedit X
   tabfirst
   copen
diff --git a/src/version.c b/src/version.c
index 7906075..b0c3fc9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2373,
+/**/
     2372,
 /**/
     2371,
