diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 68508c6..4d9df89 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2058,7 +2058,7 @@
 keys({dict})			List	keys in {dict}
 len({expr})			Number	the length of {expr}
 libcall({lib}, {func}, {arg})	String	call {func} in library {lib} with {arg}
-libcallnr({lib}, {func}, {arg})  Number  idem, but return a Number
+libcallnr({lib}, {func}, {arg})	Number  idem, but return a Number
 line({expr})			Number	line nr of cursor, last line or mark
 line2byte({lnum})		Number	byte count of line {lnum}
 lispindent({lnum})		Number	Lisp indent for line {lnum}
@@ -2120,7 +2120,7 @@
 remote_read({serverid})		String	read reply string
 remote_send({server}, {string} [, {idvar}])
 				String	send key sequence
-remove({list}, {idx} [, {end}])  any	remove items {idx}-{end} from {list}
+remove({list}, {idx} [, {end}])	any	remove items {idx}-{end} from {list}
 remove({dict}, {key})		any	remove entry {key} from {dict}
 rename({from}, {to})		Number	rename (move) file from {from} to {to}
 repeat({expr}, {count})		String	repeat {expr} {count} times
@@ -2208,7 +2208,7 @@
 synstack({lnum}, {col})		List	stack of syntax IDs at {lnum} and {col}
 system({expr} [, {input}])	String	output of shell command/filter {expr}
 systemlist({expr} [, {input}])	List	output of shell command/filter {expr}
-tabpagebuflist([{arg}])	List	list of buffer numbers in tab page
+tabpagebuflist([{arg}])		List	list of buffer numbers in tab page
 tabpagenr([{arg}])		Number	number of current or last tab page
 tabpagewinnr({tabarg}[, {arg}]) Number	number of current window in tab page
 taglist({expr})			List	list of tags matching {expr}
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index 995a049..482b742 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 7.4.  Last change: 2016 May 24
+*filetype.txt*  For Vim version 7.4.  Last change: 2016 Jun 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -579,6 +579,11 @@
 CTRL-T		Jump back to the previous manual page.
 q		Same as ":quit"
 
+To use a vertical split instead of horizontal: >
+	let g:ft_man_open_mode = 'vert'
+To use a new tab: >
+	let g:ft_man_open_mode = 'tab'
+
 To enable folding use this: >
   	let g:ft_man_folding_enable = 1
 If you do not like the default folding, use an autocommand to add your desired
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index 695b24a..5cb33bb 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -129,6 +129,7 @@
 		6 or e: Find this egrep pattern
 		7 or f: Find this file
 		8 or i: Find files #including this file
+		9 or a: Find places where this symbol is assigned a value
 
 	For all types, except 4 and 6, leading white space for {name} is
 	removed.  For 4 and 6 there is exactly one space between {querytype}
@@ -255,13 +256,13 @@
 {not available when compiled without the |+quickfix| feature}
 'cscopequickfix' specifies whether to use quickfix window to show cscope
 results.  This is a list of comma-separated values. Each item consists of
-|cscope-find| command (s, g, d, c, t, e, f or i) and flag (+, - or 0).
+|cscope-find| command (s, g, d, c, t, e, f, i or a) and flag (+, - or 0).
 '+' indicates that results must be appended to quickfix window,
 '-' implies previous results clearance, '0' or command absence - don't use
 quickfix.  Search is performed from start until first command occurrence.
 The default value is "" (don't use quickfix anyway).  The following value
 seems to be useful: >
-	:set cscopequickfix=s-,c-,d-,i-,t-,e-
+	:set cscopequickfix=s-,c-,d-,i-,t-,e-,a-
 <
 							*cscopetag* *cst*
 If 'cscopetag' is set, the commands ":tag" and CTRL-] as well as "vim -t"
@@ -422,6 +423,7 @@
 	nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
 	nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
 	nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>
+	nmap <C-_>a :cs find a <C-R>=expand("<cword>")<CR><CR>
 
 	" Using 'CTRL-spacebar' then a search type makes the vim window
 	" split horizontally, with search result displayed in
@@ -435,6 +437,7 @@
 	nmap <C-Space>f :scs find f <C-R>=expand("<cfile>")<CR><CR>
 	nmap <C-Space>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
 	nmap <C-Space>d :scs find d <C-R>=expand("<cword>")<CR><CR>
+	nmap <C-Space>a :scs find a <C-R>=expand("<cword>")<CR><CR>
 
 	" Hitting CTRL-space *twice* before the search type does a vertical
 	" split instead of a horizontal one
@@ -453,6 +456,8 @@
 		\:vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
 	nmap <C-Space><C-Space>d
 		\:vert scs find d <C-R>=expand("<cword>")<CR><CR>
+	nmap <C-Space><C-Space>a
+		\:vert scs find a <C-R>=expand("<cword>")<CR><CR>
 
 ==============================================================================
 7. Cscope availability and information			*cscope-info*
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 2751fb2..87123d3 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.4.  Last change: 2016 Jun 08
+*options.txt*	For Vim version 7.4.  Last change: 2016 Jun 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -8668,7 +8668,7 @@
 'writedelay' 'wd'	number	(default 0)
 			global
 			{not in Vi}
-	The number of microseconds to wait for each character sent to the
+	The number of milliseconds to wait for each character sent to the
 	screen.  When non-zero, characters are sent to the terminal one by
 	one.  For MS-DOS pcterm this does not work.  For debugging purposes.
 
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index dfa0417..cf1f062 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.4.  Last change: 2016 Jun 16
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Jun 25
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,14 +34,14 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+:clist! +10  list next 10 errors
+
 Further implement 'barline' in viminfo:
 - Use timestamp for more items: locations, marks.
 
 Problem with setqflist([]): grep 4 times, ":colder 3", setqflist([]) will
 clear the next list, not the current one.  Ramel Eshed, Jun 8.
 
-Patch: Fix drawing background with &termguicolors #805 (Jacob Niehus)
-
 +channel:
 - GUI cursor blinking interrupted when the job output goes to a buffer that is
   in a window. (Ramel Eshed, 2016 Jun 9)
@@ -62,7 +62,8 @@
     With xterm could use -S{pty}.
 
 Quickfix improvements for background building and grepping:
-  (Yegappan might do some of this)
+  Patch from Yegappan, 2016 Jun 17.
+  Need to reset values when starting a new list.
 - Move 'efm' parsing to a separate function.  If 'efm' is the same as last
   time re-use the fmt_first list.
 - Do not clear "dir_stack", "directory" and "file_stack", "currfile" when
@@ -143,12 +144,12 @@
 
 Invalid behavior with NULL list. (Nikolai Pavlov, #768)
 
-&t_ut not used with 'termguicolors' is set. (Jacob Niehus, 2016 May 14, #804)
-Patch to fix this, Jacob Niehus, 2016 May 14, #805)
-
 For current Windows build .pdb file is missing. (Gabriele Fava, 2016 May 11)
 5)
 
+'completeopt' noinsert breaks redo register (Shougo, 2016 Jun 18, #874)
+Patch to fix this: #875
+
 Patch to support expression argument to sort() instead of a function name.
 Yasuhiro Matsumoto, 2013 May 31.
 Or should we add a more general mechanism, like a lambda() function?
@@ -291,6 +292,7 @@
 
 When command names are very long :command output is difficult to read.  Use a
 maximum for the column width?  (#871)
+Patcy by varmanishant, 2016 Jun 18, #876
 
 Patch to change GUI behavior: instead of changing the window size change the
 lines/columns when menu/toolbar/etc. is added/removed. (Ychin, 2016 Mar 20,
