diff --git a/src/testdir/dumps/Test_changing_cmdheight_1.dump b/src/testdir/dumps/Test_changing_cmdheight_1.dump
new file mode 100644
index 0000000..db6d411
--- /dev/null
+++ b/src/testdir/dumps/Test_changing_cmdheight_1.dump
@@ -0,0 +1,8 @@
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+| +0&&@74
+@75
+@75
+|:|r|e|s|i|z|e| |-|3| @64
diff --git a/src/testdir/dumps/Test_changing_cmdheight_2.dump b/src/testdir/dumps/Test_changing_cmdheight_2.dump
new file mode 100644
index 0000000..76d9440
--- /dev/null
+++ b/src/testdir/dumps/Test_changing_cmdheight_2.dump
@@ -0,0 +1,8 @@
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+|:+0&&|s|e|t| |c|m|d|h|e|i|g|h|t|+|=|3| @57
+@75
+@75
+@75
diff --git a/src/testdir/dumps/Test_changing_cmdheight_3.dump b/src/testdir/dumps/Test_changing_cmdheight_3.dump
new file mode 100644
index 0000000..d652cc6
--- /dev/null
+++ b/src/testdir/dumps/Test_changing_cmdheight_3.dump
@@ -0,0 +1,8 @@
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+| +0&&@74
+@75
+@75
+@75
+@75
diff --git a/src/testdir/dumps/Test_changing_cmdheight_4.dump b/src/testdir/dumps/Test_changing_cmdheight_4.dump
new file mode 100644
index 0000000..c4d6fc9
--- /dev/null
+++ b/src/testdir/dumps/Test_changing_cmdheight_4.dump
@@ -0,0 +1,8 @@
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+| +0&&@74
+@75
+@75
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 912f3a5..92adbd1 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -215,6 +215,35 @@
   call delete('XTest_redraw')
 endfunc
 
+func Test_changing_cmdheight()
+  CheckScreendump
+
+  let lines =<< trim END
+      set cmdheight=1 laststatus=2
+  END
+  call writefile(lines, 'XTest_cmdheight')
+
+  let buf = RunVimInTerminal('-S XTest_cmdheight', {'rows': 8})
+  call term_sendkeys(buf, ":resize -3\<CR>")
+  call VerifyScreenDump(buf, 'Test_changing_cmdheight_1', {})
+
+  " using the space available doesn't change the status line
+  call term_sendkeys(buf, ":set cmdheight+=3\<CR>")
+  call VerifyScreenDump(buf, 'Test_changing_cmdheight_2', {})
+
+  " using more space moves the status line up
+  call term_sendkeys(buf, ":set cmdheight+=1\<CR>")
+  call VerifyScreenDump(buf, 'Test_changing_cmdheight_3', {})
+
+  " reducing cmdheight moves status line down
+  call term_sendkeys(buf, ":set cmdheight-=2\<CR>")
+  call VerifyScreenDump(buf, 'Test_changing_cmdheight_4', {})
+
+  " clean up
+  call StopVimInTerminal(buf)
+  call delete('XTest_cmdheight')
+endfunc
+
 func Test_map_completion()
   call feedkeys(":map <unique> <si\<Tab>\<Home>\"\<CR>", 'xt')
   call assert_equal('"map <unique> <silent>', getreg(':'))
diff --git a/src/version.c b/src/version.c
index 03a8091..a9887fa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -736,6 +736,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    190,
+/**/
     189,
 /**/
     188,
diff --git a/src/window.c b/src/window.c
index 2c7bd8e..5b192cc 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5702,7 +5702,7 @@
 
     if (curfrp->fr_parent == NULL)
     {
-	// topframe: can only change the command line
+	// topframe: can only change the command line height
 	if (height > ROWS_AVAIL)
 	    // If height is greater than the available space, try to create
 	    // space for the frame by reducing 'cmdheight' if possible, while
@@ -6089,6 +6089,12 @@
     int		row;
     int		up;	// if TRUE, drag status line up, otherwise down
     int		n;
+    static int	p_ch_was_zero = FALSE;
+
+    // If the user explicitly set 'cmdheight' to zero, then allow for dragging
+    // the status line making it zero again.
+    if (p_ch == 0)
+	p_ch_was_zero = TRUE;
 
     fr = dragwin->w_frame;
     curfr = fr;
@@ -6147,6 +6153,8 @@
 	room = Rows - cmdline_row;
 	if (curfr->fr_next != NULL)
 	    room -= p_ch;
+	else if (!p_ch_was_zero)
+	    --room;
 	if (room < 0)
 	    room = 0;
 	// sum up the room of frames below of the current one
@@ -6196,7 +6204,7 @@
     row = win_comp_pos();
     screen_fill(row, cmdline_row, 0, (int)Columns, ' ', ' ', 0);
     cmdline_row = row;
-    p_ch = MAX(Rows - cmdline_row, 0);
+    p_ch = MAX(Rows - cmdline_row, p_ch_was_zero ? 0 : 1);
     curtab->tp_ch_used = p_ch;
     redraw_all_later(SOME_VALID);
     showmode();
@@ -6542,6 +6550,11 @@
     // p_ch was changed in another tab page.
     curtab->tp_ch_used = p_ch;
 
+    // If the space for the command line is already more than 'cmdheight' there
+    // is nothing to do (window size must have decreased).
+    if (p_ch > old_p_ch && cmdline_row <= Rows - p_ch)
+	return;
+
     // Find bottom frame with width of screen.
     frp = lastwin->w_frame;
     while (frp->fr_width != Columns && frp->fr_parent != NULL)
