patch 7.4.2010
Problem:    There is a :cbottom command but no :lbottom command.
Solution:   Add :lbottom. (Yegappan Lakshmanan)
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index f040e5f..7c6734a 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1139,6 +1139,7 @@
 |:caddfile|	:caddf[ile]	add error message to current quickfix list
 |:call|		:cal[l]		call a function
 |:catch|	:cat[ch]	part of a :try command
+|:cbottom|	:cbo[ttom]	scroll to the bottom of the quickfix window
 |:cbuffer|	:cb[uffer]	parse error messages and jump to first error
 |:cc|		:cc		go to specific error
 |:cclose|	:ccl[ose]	close quickfix window
@@ -1299,6 +1300,7 @@
 |:last|		:la[st]		go to the last file in the argument list
 |:language|	:lan[guage]	set the language (locale)
 |:later|	:lat[er]	go to newer change, redo
+|:lbottom|	:lbo[ttom]	scroll to the bottom of the location window
 |:lbuffer|	:lb[uffer]	parse locations and jump to first location
 |:lcd|		:lc[d]		change directory locally
 |:lchdir|	:lch[dir]	change directory locally
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 9fb6b18..7d5db2c 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.4.  Last change: 2016 Jul 02
+*quickfix.txt*  For Vim version 7.4.  Last change: 2016 Jul 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -437,12 +437,17 @@
 :lw[indow] [height]	Same as ":cwindow", except use the window showing the
 			location list for the current window.
 
+							*:cbo* *:cbottom*
 :cbo[ttom]		Put the cursor in the last line of the quickfix window
 			and scroll to make it visible.  This is useful for
 			when errors are added by an asynchronous callback.
 			Only call it once in a while if there are many
 			updates to avoid a lot of redrawing.
 
+							*:lbo* *:lbottom*
+:lbo[ttom]		Same as ":cbottom", except use the window showing the
+			location list for the current window.
+
 Normally the quickfix window is at the bottom of the screen.  If there are
 vertical splits, it's at the bottom of the rightmost column of windows.  To
 make it always occupy the full width: >
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 8c64d33..f57adc0d 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -724,6 +724,9 @@
 EX(CMD_later,		"later",	ex_later,
 			TRLBAR|EXTRA|NOSPC|CMDWIN,
 			ADDR_LINES),
+EX(CMD_lbottom,		"lbottom",	ex_cbottom,
+			TRLBAR,
+			ADDR_LINES),
 EX(CMD_lbuffer,		"lbuffer",	ex_cbuffer,
 			BANG|RANGE|NOTADR|WORD1|TRLBAR,
 			ADDR_LINES),
diff --git a/src/quickfix.c b/src/quickfix.c
index 45659a0..92a0204 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2831,13 +2831,25 @@
 }
 
 /*
- * :cbottom command.
+ * :cbottom/:lbottom commands.
  */
     void
 ex_cbottom(exarg_T *eap UNUSED)
 {
-    win_T *win = qf_find_win(&ql_info);
+    qf_info_T	*qi = &ql_info;
+    win_T	*win;
 
+    if (eap->cmdidx == CMD_lbottom)
+    {
+	qi = GET_LOC_LIST(curwin);
+	if (qi == NULL)
+	{
+	    EMSG(_(e_loclist));
+	    return;
+	}
+    }
+
+    win = qf_find_win(qi);
     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);
 }
diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim
index 01e2110..39f788e 100644
--- a/src/testdir/test_quickfix.vim
+++ b/src/testdir/test_quickfix.vim
@@ -15,6 +15,7 @@
     command! -nargs=* Xnewer <mods>cnewer <args>
     command! -nargs=* Xopen <mods>copen <args>
     command! -nargs=* Xwindow <mods>cwindow <args>
+    command! -nargs=* Xbottom <mods>cbottom <args>
     command! -nargs=* Xclose <mods>cclose <args>
     command! -nargs=* -bang Xfile <mods>cfile<bang> <args>
     command! -nargs=* Xgetfile <mods>cgetfile <args>
@@ -44,6 +45,7 @@
     command! -nargs=* Xnewer <mods>lnewer <args>
     command! -nargs=* Xopen <mods>lopen <args>
     command! -nargs=* Xwindow <mods>lwindow <args>
+    command! -nargs=* Xbottom <mods>lbottom <args>
     command! -nargs=* Xclose <mods>lclose <args>
     command! -nargs=* -bang Xfile <mods>lfile<bang> <args>
     command! -nargs=* Xgetfile <mods>lgetfile <args>
@@ -200,6 +202,7 @@
   Xwindow
   call assert_true(winnr('$') == 2 && winnr() == 2 &&
 	\ getline('.') ==# 'Xtestfile1|1 col 3| Line1')
+  redraw!
 
   " Close the window
   Xclose
@@ -1415,15 +1418,23 @@
   call delete('Xtwo', 'rf')
 endfunc
 
-function Test_cbottom()
-  call setqflist([{'filename': 'foo', 'lnum': 42}]) 
-  copen
+function XbottomTests(cchar)
+  call s:setup_commands(a:cchar)
+
+  call g:Xsetlist([{'filename': 'foo', 'lnum': 42}]) 
+  Xopen
   let wid = win_getid()
   call assert_equal(1, line('.'))
   wincmd w
-  call setqflist([{'filename': 'var', 'lnum': 24}], 'a') 
-  cbottom
+  call g:Xsetlist([{'filename': 'var', 'lnum': 24}], 'a') 
+  Xbottom
   call win_gotoid(wid)
   call assert_equal(2, line('.'))
-  cclose
+  Xclose
 endfunc
+
+" Tests for the :cbottom and :lbottom commands
+function Test_cbottom()
+  call XbottomTests('c')
+  call XbottomTests('l')
+endfunction
diff --git a/src/version.c b/src/version.c
index 08675cd..b0969bd 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2010,
+/**/
     2009,
 /**/
     2008,