diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 5053e60..8c64d33 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -259,6 +259,9 @@
 EX(CMD_cbuffer,		"cbuffer",	ex_cbuffer,
 			BANG|RANGE|NOTADR|WORD1|TRLBAR,
 			ADDR_LINES),
+EX(CMD_cbottom,		"cbottom",	ex_cbottom,
+			TRLBAR,
+			ADDR_LINES),
 EX(CMD_cc,		"cc",		ex_cc,
 			RANGE|NOTADR|COUNT|TRLBAR|BANG,
 			ADDR_LINES),
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index ad4ba7c..0be3a69 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -129,6 +129,7 @@
 # define ex_cclose		ex_ni
 # define ex_copen		ex_ni
 # define ex_cwindow		ex_ni
+# define ex_cbottom		ex_ni
 #endif
 #if !defined(FEAT_QUICKFIX) || !defined(FEAT_EVAL)
 # define ex_cexpr		ex_ni
diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro
index cc60edd..a2b6b76 100644
--- a/src/proto/quickfix.pro
+++ b/src/proto/quickfix.pro
@@ -9,6 +9,7 @@
 void ex_cwindow(exarg_T *eap);
 void ex_cclose(exarg_T *eap);
 void ex_copen(exarg_T *eap);
+void ex_cbottom(exarg_T *eap);
 linenr_T qf_current_entry(win_T *wp);
 int bt_quickfix(buf_T *buf);
 int bt_nofile(buf_T *buf);
diff --git a/src/quickfix.c b/src/quickfix.c
index 7bfd488..45659a0 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2808,6 +2808,41 @@
 }
 
 /*
+ * Move the cursor in the quickfix window to "lnum".
+ */
+    static void
+qf_win_goto(win_T *win, linenr_T lnum)
+{
+    win_T	*old_curwin = curwin;
+
+    curwin = win;
+    curbuf = win->w_buffer;
+    curwin->w_cursor.lnum = lnum;
+    curwin->w_cursor.col = 0;
+#ifdef FEAT_VIRTUALEDIT
+    curwin->w_cursor.coladd = 0;
+#endif
+    curwin->w_curswant = 0;
+    update_topline();		/* scroll to show the line */
+    redraw_later(VALID);
+    curwin->w_redr_status = TRUE;	/* update ruler */
+    curwin = old_curwin;
+    curbuf = curwin->w_buffer;
+}
+
+/*
+ * :cbottom command.
+ */
+    void
+ex_cbottom(exarg_T *eap UNUSED)
+{
+    win_T *win = qf_find_win(&ql_info);
+
+    if (win != NULL && win->w_cursor.lnum != win->w_buffer->b_ml.ml_line_count)
+	qf_win_goto(win, win->w_buffer->b_ml.ml_line_count);
+}
+
+/*
  * Return the number of the current entry (line number in the quickfix
  * window).
  */
@@ -2844,27 +2879,17 @@
 	    && qf_index <= win->w_buffer->b_ml.ml_line_count
 	    && old_qf_index != qf_index)
     {
-	win_T	*old_curwin = curwin;
-
-	curwin = win;
-	curbuf = win->w_buffer;
 	if (qf_index > old_qf_index)
 	{
-	    curwin->w_redraw_top = old_qf_index;
-	    curwin->w_redraw_bot = qf_index;
+	    win->w_redraw_top = old_qf_index;
+	    win->w_redraw_bot = qf_index;
 	}
 	else
 	{
-	    curwin->w_redraw_top = qf_index;
-	    curwin->w_redraw_bot = old_qf_index;
+	    win->w_redraw_top = qf_index;
+	    win->w_redraw_bot = old_qf_index;
 	}
-	curwin->w_cursor.lnum = qf_index;
-	curwin->w_cursor.col = 0;
-	update_topline();		/* scroll to show the line */
-	redraw_later(VALID);
-	curwin->w_redr_status = TRUE;	/* update ruler */
-	curwin = old_curwin;
-	curbuf = curwin->w_buffer;
+	qf_win_goto(win, qf_index);
     }
     return win != NULL;
 }
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index d624baf..01e2110 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -1414,3 +1414,16 @@
   call delete('Xone', 'rf')
   call delete('Xtwo', 'rf')
 endfunc
+
+function Test_cbottom()
+  call setqflist([{'filename': 'foo', 'lnum': 42}]) 
+  copen
+  let wid = win_getid()
+  call assert_equal(1, line('.'))
+  wincmd w
+  call setqflist([{'filename': 'var', 'lnum': 24}], 'a') 
+  cbottom
+  call win_gotoid(wid)
+  call assert_equal(2, line('.'))
+  cclose
+endfunc
diff --git a/src/version.c b/src/version.c
index b6b9e59..d606bab 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1997,
+/**/
     1996,
 /**/
     1995,
