diff --git a/src/evalfunc.c b/src/evalfunc.c
index cc812ce..b752c51 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -4651,6 +4651,13 @@
 		},
 	{"cmdline_compl", 1},
 	{"cmdline_hist", 1},
+	{"cmdwin",
+#ifdef FEAT_CMDWIN
+		1
+#else
+		0
+#endif
+		},
 	{"comments", 1},
 	{"conceal",
 #ifdef FEAT_CONCEAL
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index b72fe2d..6202993 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -527,6 +527,7 @@
 " Test for quitting Vim with unedited files in the argument list
 func Test_quit_with_arglist()
   CheckRunVimInTerminal
+
   let buf = RunVimInTerminal('', {'rows': 6})
   call term_sendkeys(buf, ":set nomore\n")
   call term_sendkeys(buf, ":args a b c\n")
@@ -561,9 +562,13 @@
 
 " Test for ":all" not working when in the cmdline window
 func Test_all_not_allowed_from_cmdwin()
+  CheckFeature cmdwin
+  " TODO: why does this hang on Windows?
+  CheckNotMSWindows
+
   au BufEnter * all
   next x
-  call assert_fails(":norm 7q?x\<CR>", 'E11:')
+  call assert_fails(":norm 7q?print\<CR>", 'E11:')
   au! BufEnter
 endfunc
 
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 5ec854e..60369c2 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -2397,10 +2397,8 @@
 
 func Test_autocmd_CmdWinEnter()
   CheckRunVimInTerminal
-  " There is not cmdwin switch, so
-  " test for cmdline_hist
-  " (both are available with small builds)
-  CheckFeature cmdline_hist
+  CheckFeature cmdwin
+
   let lines =<< trim END
     let b:dummy_var = 'This is a dummy'
     autocmd CmdWinEnter * quit
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index cb16de1..c2bbcc6 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -129,7 +129,6 @@
 endfunc
 
 func Test_map_completion()
-  CheckFeature cmdline_compl
   call feedkeys(":map <unique> <si\<Tab>\<Home>\"\<CR>", 'xt')
   call assert_equal('"map <unique> <silent>', getreg(':'))
   call feedkeys(":map <script> <un\<Tab>\<Home>\"\<CR>", 'xt')
@@ -207,7 +206,6 @@
 endfunc
 
 func Test_match_completion()
-  CheckFeature cmdline_compl
   hi Aardig ctermfg=green
   call feedkeys(":match \<Tab>\<Home>\"\<CR>", 'xt')
   call assert_equal('"match Aardig', getreg(':'))
@@ -216,7 +214,6 @@
 endfunc
 
 func Test_highlight_completion()
-  CheckFeature cmdline_compl
   hi Aardig ctermfg=green
   call feedkeys(":hi \<Tab>\<Home>\"\<CR>", 'xt')
   call assert_equal('"hi Aardig', getreg(':'))
@@ -253,7 +250,6 @@
 endfunc
 
 func Test_getcompletion()
-  CheckFeature cmdline_compl
   let groupcount = len(getcompletion('', 'event'))
   call assert_true(groupcount > 0)
   let matchcount = len('File'->getcompletion('event'))
@@ -980,6 +976,8 @@
 endfunc
 
 func Test_getcmdwintype()
+  CheckFeature cmdwin
+
   call feedkeys("q/:let a = getcmdwintype()\<CR>:q\<CR>", 'x!')
   call assert_equal('/', a)
 
@@ -996,6 +994,8 @@
 endfunc
 
 func Test_getcmdwin_autocmd()
+  CheckFeature cmdwin
+
   let s:seq = []
   augroup CmdWin
   au WinEnter * call add(s:seq, 'WinEnter ' .. win_getid())
@@ -1108,6 +1108,8 @@
 endfunc
 
 func Test_cmdwin_bug()
+  CheckFeature cmdwin
+
   let winid = win_getid()
   sp
   try
@@ -1118,6 +1120,7 @@
 endfunc
 
 func Test_cmdwin_restore()
+  CheckFeature cmdwin
   CheckScreendump
 
   let lines =<< trim [SCRIPT]
@@ -1193,6 +1196,8 @@
 endfunc
 
 func Test_cmdwin_feedkeys()
+  CheckFeature cmdwin
+
   " This should not generate E488
   call feedkeys("q:\<CR>", 'x')
   " Using feedkeys with q: only should automatically close the cmd window
@@ -1204,6 +1209,8 @@
 " Tests for the issues fixed in 7.4.441.
 " When 'cedit' is set to Ctrl-C, opening the command window hangs Vim
 func Test_cmdwin_cedit()
+  CheckFeature cmdwin
+
   exe "set cedit=\<C-c>"
   normal! :
   call assert_equal(1, winnr('$'))
@@ -1226,6 +1233,8 @@
 
 " Test for CmdwinEnter autocmd
 func Test_cmdwin_autocmd()
+  CheckFeature cmdwin
+
   augroup CmdWin
     au!
     autocmd CmdwinEnter * startinsert
@@ -1268,6 +1277,8 @@
 endfunc
 
 func Test_cmdwin_jump_to_win()
+  CheckFeature cmdwin
+
   call assert_fails('call feedkeys("q:\<C-W>\<C-W>\<CR>", "xt")', 'E11:')
   new
   set modified
@@ -1284,6 +1295,7 @@
 endfunc
 
 func Test_cmdwin_interrupted()
+  CheckFeature cmdwin
   CheckScreendump
 
   " aborting the :smile output caused the cmdline window to use the current
@@ -1570,6 +1582,8 @@
 
 " Test for recursively getting multiple command line inputs
 func Test_cmdwin_multi_input()
+  CheckFeature cmdwin
+
   call feedkeys(":\<C-R>=input('P: ')\<CR>\"cyan\<CR>\<CR>", 'xt')
   call assert_equal('"cyan', @:)
 endfunc
@@ -1594,6 +1608,8 @@
 
 " Test for normal mode commands not supported in the cmd window
 func Test_cmdwin_blocked_commands()
+  CheckFeature cmdwin
+
   call assert_fails('call feedkeys("q:\<C-T>\<CR>", "xt")', 'E11:')
   call assert_fails('call feedkeys("q:\<C-]>\<CR>", "xt")', 'E11:')
   call assert_fails('call feedkeys("q:\<C-^>\<CR>", "xt")', 'E11:')
@@ -1625,6 +1641,8 @@
 
 " Close the Cmd-line window in insert mode using CTRL-C
 func Test_cmdwin_insert_mode_close()
+  CheckFeature cmdwin
+
   %bw!
   let s = ''
   exe "normal q:a\<C-C>let s='Hello'\<CR>"
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index b1a2a9e..e59bd20 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -343,6 +343,8 @@
 endfunc
 
 func Test_compl_in_cmdwin()
+  CheckFeature cmdwin
+
   set wildmenu wildchar=<Tab>
   com! -nargs=1 -complete=command GetInput let input = <q-args>
   com! -buffer TestCommand echo 'TestCommand'
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim
index d2f1fab..8aef41d 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -2584,9 +2584,11 @@
   call assert_false(&insertmode)
   call assert_beeps("normal! \<C-\>\<C-A>", 'xt')
 
-  " Using CTRL-\ CTRL-N in cmd window should close the window
-  call feedkeys("q:\<C-\>\<C-N>", 'xt')
-  call assert_equal('', getcmdwintype())
+  if has('cmdwin')
+    " Using CTRL-\ CTRL-N in cmd window should close the window
+    call feedkeys("q:\<C-\>\<C-N>", 'xt')
+    call assert_equal('', getcmdwintype())
+  endif
 
   " clean up
   bw!
diff --git a/src/testdir/test_tabpage.vim b/src/testdir/test_tabpage.vim
index 38a6283..dac6d80 100644
--- a/src/testdir/test_tabpage.vim
+++ b/src/testdir/test_tabpage.vim
@@ -617,6 +617,8 @@
 
 " Test for closing the tab page from a command window
 func Test_tabpage_close_cmdwin()
+  CheckFeature cmdwin
+
   tabnew
   call feedkeys("q/:tabclose\<CR>\<Esc>", 'xt')
   call assert_equal(2, tabpagenr('$'))
diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim
index 055ed8b..040869c 100644
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -367,6 +367,8 @@
 
 " Test for using the mouse to increaes the height of the cmdline window
 func Test_mouse_cmdwin_resize()
+  CheckFeature cmdwin
+
   let save_mouse = &mouse
   let save_term = &term
   let save_ttymouse = &ttymouse
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index 8a97488..f26b447 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -19,6 +19,8 @@
 endfunc
 
 func Test_window_cmd_cmdwin_with_vsp()
+  CheckFeature cmdwin
+
   let efmt = 'Expected 0 but got %d (in ls=%d, %s window)'
   for v in range(0, 2)
     exec "set ls=" . v
diff --git a/src/version.c b/src/version.c
index 071a36e..24a1d7f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2415,
+/**/
     2414,
 /**/
     2413,
