diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index ae8f4c6..3f2f490 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -409,6 +409,11 @@
 {Visual}CTRL-X		Subtract [count] from the number or alphabetic
 			character in the highlighted text.  {not in Vi}
 
+			On MS-Windows, this is mapped to cut Visual text
+			|dos-standard-mappings|.  If you want to disable the
+			mapping, use this: >
+				silent! vunmap <C-X>
+<
 							*v_g_CTRL-X*
 {Visual}g CTRL-X	Subtract [count] from the number or alphabetic
 			character in the highlighted text. If several lines
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index a52c739..94ceafe 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -1,4 +1,4 @@
-*channel.txt*      For Vim version 7.4.  Last change: 2016 Feb 16
+*channel.txt*      For Vim version 7.4.  Last change: 2016 Feb 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -155,7 +155,6 @@
 When "mode" is "json" or "js" the "callback" is optional.  When omitted it is
 only possible to receive a message after sending one.
 
-TODO:
 To change the channel options after opening it use ch_setoptions().  The
 arguments are similar to what is passed to ch_open(), but "waittime" cannot be
 given, since that only applies to opening the channel.
@@ -233,8 +232,8 @@
 Then channel handler will then get {response} converted to Vim types.  If the
 channel does not have a handler the message is dropped.
 
-On read error or ch_close() the string "DETACH" is sent, if still possible.
-The channel will then be inactive.
+On read error or ch_close(), when using a socket, the string "DETACH" is sent,
+if still possible.  The channel will then be inactive.
 
 It is also possible to use ch_sendraw() on a JSON or JS channel.  The caller
 is then completely responsible for correct encoding and decoding.
@@ -295,9 +294,11 @@
 
 The "eval" command an be used to get the result of an expression.  For
 example, to get the number of lines in the current buffer:
-	["eval","line('$')"] ~
+	["eval","line('$')", -2] ~
 
 it will send back the result of the expression:
+	[-2, "last line"] ~
+The format is:
 	[{number}, {result}]
 Here {number} is the same as what was in the request.  Use a negative number
 to avoid confusion with message that Vim sends.
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 7fa1008..98a0bb9 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.4.  Last change: 2016 Feb 11
+*editing.txt*   For Vim version 7.4.  Last change: 2016 Feb 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1016,7 +1016,7 @@
 case try recovery, because the swap file is synced to disk and might still be
 there. |:recover|
 
-The directories given with the 'backupdir' option is used to put the backup
+The directories given with the 'backupdir' option are used to put the backup
 file in.  (default: same directory as the written file).
 
 Whether the backup is a new file, which is a copy of the original file, or the
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 9ec893f..f5885da 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2016 Feb 16
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Feb 19
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1793,9 +1793,9 @@
 arglistid( [{winnr} [, {tabnr}]])
 				Number	argument list id
 argv( {nr})			String	{nr} entry of the argument list
-argv( )				List	the argument list
+argv()				List	the argument list
 assert_equal( {exp}, {act} [, {msg}]) none  assert {exp} equals {act}
-assert_exception({error} [, {msg}])   none  assert {error} is in v:exception
+assert_exception( {error} [, {msg}])  none  assert {error} is in v:exception
 assert_fails( {cmd} [, {error}])      none  assert {cmd} fails
 assert_false( {actual} [, {msg}])     none  assert {actual} is false
 assert_true( {actual} [, {msg}])      none  assert {actual} is true
@@ -1818,13 +1818,15 @@
 				any	call {func} with arguments {arglist}
 ceil( {expr})			Float	round {expr} up
 ch_close( {handle})		none	close a channel
+ch_log( {msg} [, {channel}])	none	write {msg} in the channel log file
 ch_logfile( {fname} [, {mode}])	none	start logging channel activity
-ch_open( {address} [, {argdict})] Number open a channel to {address}
+ch_open( {address} [, {options}]) Channel open a channel to {address}
 ch_readraw( {handle})		String	read from channel {handle}
 ch_sendexpr( {handle}, {expr} [, {options}])
 				any	send {expr} over JSON channel {handle}
 ch_sendraw( {handle}, {string} [, {options}])
 				any	send {string} over raw channel {handle}
+ch_setoptions( {handle}, {options})  none  set options for channel {handle}
 ch_status( {handle})		String	status of channel {handle}
 changenr()			Number	current change number
 char2nr( {expr}[, {utf8}])	Number	ASCII/UTF8 value of first char in {expr}
@@ -1851,11 +1853,11 @@
 did_filetype()			Number	TRUE if FileType autocommand event used
 diff_filler( {lnum})		Number	diff filler lines about {lnum}
 diff_hlID( {lnum}, {col})	Number	diff highlighting at {lnum}/{col}
-disable_char_avail_for_testing({expr})  none  test without typeahead
+disable_char_avail_for_testing( {expr})  none  test without typeahead
 empty( {expr})			Number	TRUE if {expr} is empty
 escape( {string}, {chars})	String	escape {chars} in {string} with '\'
 eval( {string})			any	evaluate {string} into its value
-eventhandler( )			Number	TRUE if inside an event handler
+eventhandler()			Number	TRUE if inside an event handler
 executable( {expr})		Number	1 if executable {expr} exists
 exepath( {expr})		String  full path of the command {expr}
 exists( {expr})			Number	TRUE if {expr} exists
@@ -1881,9 +1883,9 @@
 foldclosed( {lnum})		Number	first line of fold at {lnum} if closed
 foldclosedend( {lnum})		Number	last line of fold at {lnum} if closed
 foldlevel( {lnum})		Number	fold level at {lnum}
-foldtext( )			String	line displayed for closed fold
+foldtext()			String	line displayed for closed fold
 foldtextresult( {lnum})		String	text for closed fold at {lnum}
-foreground( )			Number	bring the Vim window to the foreground
+foreground()			Number	bring the Vim window to the foreground
 function( {name})		Funcref reference to function {name}
 garbagecollect( [{atexit}])	none	free memory, breaking cyclic references
 get( {list}, {idx} [, {def}])	any	get item {idx} from {list} or {def}
@@ -1893,7 +1895,7 @@
 getbufvar( {expr}, {varname} [, {def}])
 				any	variable {varname} in buffer {expr}
 getchar( [expr])		Number	get one character from the user
-getcharmod( )			Number	modifiers for the last typed character
+getcharmod()			Number	modifiers for the last typed character
 getcharsearch()			Dict	last character search
 getcmdline()			String	return the current command-line
 getcmdpos()			Number	return cursor position in command-line
@@ -1935,7 +1937,7 @@
 				Number	TRUE if the window executed |:lcd|
 hasmapto( {what} [, {mode} [, {abbr}]])
 				Number	TRUE if mapping to {what} exists
-histadd( {history},{item})	String	add an item to a history
+histadd( {history}, {item})	String	add an item to a history
 histdel( {history} [, {item}])	String	remove an item from a history
 histget( {history} [, {index}])	String	get the item {index} from a history
 histnr( {history})		Number	highest index of a history
@@ -2220,7 +2222,7 @@
 		the first file.  argc() - 1 is the last one.  See |arglist|.
 
 							*arglistid()*
-arglistid([{winnr}, [ {tabnr} ]])
+arglistid([{winnr} [, {tabnr}]])
 		Return the argument list ID.  This is a number which
 		identifies the argument list being used.  Zero is used for the
 		global argument list.  See |arglist|.
@@ -2686,7 +2688,13 @@
 		Close channel {handle}.  See |channel|.
 		{only available when compiled with the |+channel| feature}
 
-ch_logfile( {fname} [, {mode}])					*ch_logfile()*
+ch_log({msg} [, {channel}])					*ch_log()*
+		Write {msg} in the channel log file, if it was opened with
+		|ch_logfile()|.
+		When {channel} is passed the channel number is used for the
+		message.  {channel} must be an open channel.
+
+ch_logfile({fname} [, {mode}])					*ch_logfile()*
 		Start logging channel activity to {fname}.
 		When {fname} is an empty string: stop logging.
 
@@ -2696,7 +2704,7 @@
 		The file is flushed after every message, on Unix you can use
 		"tail -f" to see what is going on in real time.
 
-ch_open({address} [, {argdict}])				*ch_open()*
+ch_open({address} [, {options}])				*ch_open()*
 		Open a channel to {address}.  See |channel|.
 		Returns the channel handle on success.  Returns a negative
 		number for failure.
@@ -2704,7 +2712,7 @@
 		{address} has the form "hostname:port", e.g.,
 		"localhost:8765".
 
-		If {argdict} is given it must be a |Dictionary|.  The optional
+		If {options} is given it must be a |Dictionary|.  The optional
 		items are:
 			mode        "raw", "js" or "json".
 				    Default "json".
@@ -2754,6 +2762,16 @@
 
 		{only available when compiled with the |+channel| feature}
 
+ch_setoptions({handle}, {options})			*ch_setoptions()*
+		Set options on channel {handle}:
+			"callback"	the channel callback
+			"timeout"	default read timeout in msec
+		See |ch_open()| for more explanation.
+
+		These options cannot be changed:
+			"mode"		cannot be changed once channel is open
+			"waittime"	only applies to "ch_open()|
+
 ch_status({handle})						*ch_status()*
 		Return the status of channel {handle}:
 			"fail"		failed to open the channel
@@ -6005,7 +6023,7 @@
 
 
 							*setreg()*
-setreg({regname}, {value} [,{options}])
+setreg({regname}, {value} [, {options}])
 		Set the register {regname} to {value}.
 		{value} may be any value returned by |getreg()|, including 
 		a |List|.
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index f832870..74bdc34 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 7.4.  Last change: 2016 Jan 31
+*netbeans.txt*  For Vim version 7.4.  Last change: 2016 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
@@ -194,6 +194,8 @@
 	+ an IDE may start Vim with the |-nb| command line argument
 	+ NetBeans can be started from within Vim with the |:nbstart| command
 
+Vim uses a 3 second timeout on trying to make the connection.
+
 							*netbeans-parameters*
 Three forms can be used to setup the NetBeans connection parameters.
 When started from the command line, the |-nb| command line argument may be:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 9f7f50d..25ee6a7 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 Feb 12
+*options.txt*	For Vim version 7.4.  Last change: 2016 Feb 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1969,7 +1969,7 @@
 	NOTE: 'copyindent' is reset when 'compatible' is set.
 	Also see 'preserveindent'.
 
-						*'cpoptions'* *'cpo'*
+						*'cpoptions'* *'cpo'* *cpo*
 'cpoptions' 'cpo'	string	(Vim default: "aABceFs",
 				 Vi default:  all flags)
 			global
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index 245a318..2e4659e 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -94,6 +94,7 @@
 CTRL-Insert	copy Visual text (to clipboard)			*<C-Insert>*
 CTRL-Del	cut Visual text (to clipboard)			*<C-Del>*
 Shift-Del	cut Visual text (to clipboard)			*<S-Del>*
+CTRL-X		cut Visual text (to clipboard)
 
 These mappings accomplish this (Win32 and DJGPP versions of Vim):
 
@@ -102,6 +103,7 @@
 CTRL-Insert	<M-N><M-U>		"*y
 Shift-Del	<M-N><M-W>		"*d
 CTRL-Del	<M-N><M-X>		"*d
+CTRL-X		<C-X>			"*d
 
 Or these mappings (non-Win32 version of Vim):
 
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 3ca221f..145c918 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.4.  Last change: 2015 Oct 31
+*pi_netrw.txt*  For Vim version 7.4.  Last change: 2016 Feb 16
 
 	    ------------------------------------------------
 	    NETRW REFERENCE MANUAL    by Charles E. Campbell
@@ -6,7 +6,7 @@
 Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
 	  (remove NOSPAM from Campbell's email first)
 
-Copyright: Copyright (C) 1999-2015 Charles E Campbell    *netrw-copyright*
+Copyright: Copyright (C) 2016 Charles E Campbell    *netrw-copyright*
 	The VIM LICENSE applies to the files in this package, including
 	netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
 	syntax/netrw.vim.  Like anything else that's free, netrw.vim and its
@@ -48,9 +48,10 @@
       Introduction To Browsing............................|netrw-intro-browse|
       Quick Reference: Maps...............................|netrw-browse-maps|
       Quick Reference: Commands...........................|netrw-browse-cmds|
+      Banner Display......................................|netrw-I|
       Bookmarking A Directory.............................|netrw-mb|
       Browsing............................................|netrw-cr|
-        Squeezing the Current Tree-Listing Directory......|:netrw-s-cr|
+      Squeezing the Current Tree-Listing Directory........|netrw-s-cr|
       Browsing With A Horizontally Split Window...........|netrw-o|
       Browsing With A New Tab.............................|netrw-t|
       Browsing With A Vertically Split Window.............|netrw-v|
@@ -75,11 +76,13 @@
       Making The Browsing Directory The Current Directory.|netrw-c|
       Marking Files.......................................|netrw-mf|
       Unmarking Files.....................................|netrw-mF|
+      Marking Files By Location List......................|netrw-qL|
       Marking Files By QuickFix List......................|netrw-qF|
       Marking Files By Regular Expression.................|netrw-mr|
       Marked Files: Arbitrary Shell Command...............|netrw-mx|
       Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
       Marked Files: Arbitrary Vim Command.................|netrw-mv|
+      Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
       Marked Files: Compression And Decompression.........|netrw-mz|
       Marked Files: Copying...............................|netrw-mc|
       Marked Files: Diff..................................|netrw-md|
@@ -1113,6 +1116,7 @@
 	   qb	List bookmarked directories and history              |netrw-qb|
 	   qf	Display information on file                          |netrw-qf|
 	   qF	Mark files using a quickfix list                     |netrw-qF|
+	   qL	Mark files using a |location-list|                     |netrw-qL|
 	   r	Reverse sorting order                                |netrw-r|
 	   R	Rename the designated file(s)/directory(ies)         |netrw-R|
 	   s	Select sorting style: by name, time, or file size    |netrw-s|
@@ -1162,6 +1166,14 @@
      :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
      :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
 
+
+BANNER DISPLAY						*netrw-I*
+
+One may toggle the banner display on and off by pressing "I".
+
+Also See: |g:netrw_banner|
+
+
 BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
 
 One may easily "bookmark" the currently browsed directory by using >
@@ -1203,7 +1215,7 @@
 	|g:netrw_home| controls where .netrwbook is kept
 
 
-BROWSING						*netrw-cr* {{{2
+BROWSING					*netrw-enter*	*netrw-cr* {{{2
 
 Browsing is simple: move the cursor onto a file or directory of interest.
 Hitting the <cr> (the return key) will select the file or directory.
@@ -1244,11 +1256,21 @@
 are introduced into a directory), the listing may become out-of-date.  One may
 always refresh directory listing buffers by pressing ctrl-L (see
 |netrw-ctrl-l|).
-								*:netrw-s-cr*
-    Squeezing the Current Tree-Listing Directory~
-    When the tree listing style is enabled (see |netrw-i|) and one is using
-    gvim, then the <s-cr> mapping may be used to squeeze (close) the
-    directory currently containing the cursor.
+
+								*netrw-s-cr*
+Squeezing the Current Tree-Listing Directory~
+
+When the tree listing style is enabled (see |netrw-i|) and one is using
+gvim, then the <s-cr> mapping may be used to squeeze (close) the
+directory currently containing the cursor.
+
+Otherwise, one may remap a key combination of one's own choice to get
+this effect: >
+
+    nmap <buffer> <silent> <nowait> YOURKEYCOMBO  <Plug>NetrwTreeSqueeze
+<
+Put this line in $HOME/ftplugin/netrw/netrw.vim; it needs to be generated
+for netrw buffers only.
 
 Related topics:
 	|netrw-ctrl-r|	|netrw-o|	|netrw-p|
@@ -1497,7 +1519,8 @@
 special handler will use.  Normally gx uses expand("<cfile>") to pick up the
 text under the cursor; one may change what |expand()| uses via the
 |g:netrw_gx| variable.  Alternatively, one may select the text to be used by
-gx via first making a visual selection (see |visual-block|).
+gx via first making a visual selection (see |visual-block|) or by changing
+the |'isfname'| option (which is global, so netrw doesn't modify it).
 
 Associated setting variables:
 	|g:netrw_gx|	control how gx picks up the text under the cursor
@@ -1715,8 +1738,9 @@
 EXPLORING WITH STARS AND PATTERNS {{{2
 
 When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
-following four patterns Explore generates a list of files which satisfy
-the request. >
+following four patterns Explore generates a list of files which satisfy the
+request for the local file system.  These exploration patterns will not work
+with remote file browsing.
 
     */filepat	files in current directory which satisfy filepat
     **/filepat	files in current directory or below which satisfy the
@@ -2081,15 +2105,22 @@
 
 		:MF *.c
 <
-	* Note that :MF uses |<f-args>| to break the line
-	  at spaces.
+	  (Note that :MF uses |<f-args>| to break the line
+	  at spaces)
+
+	* Mark files using the |argument-list| (|netrw-mA|)
+
+	* Mark files based upon a |location-list| (|netrw-qL|)
 
 	* Mark files based upon the quickfix list (|netrw-qF|)
+	  (|quickfix-error-lists|)
 
 The following netrw maps make use of marked files:
 
     |netrw-a|	Hide marked files/directories
     |netrw-D|	Delete marked files/directories
+    |netrw-ma|	Move marked files' names to |arglist|
+    |netrw-mA|	Move |arglist| filenames to marked file list
     |netrw-mb|	Append marked files to bookmarks
     |netrw-mB|	Delete marked files from bookmarks
     |netrw-mc|	Copy marked files to target
@@ -2148,8 +2179,14 @@
 The "mF" command will unmark all files in the current buffer.  One may also use
 mf (|netrw-mf|) on a specific, already marked, file to unmark just that file.
 
+MARKING FILES BY LOCATION LIST					*netrw-qL* {{{2
+	(also see |netrw-mf|)
 
-MARKING FILES BY QUICKFIX LIST				*netrw-qF* {{{2
+One may convert |location-list|s into a marked file list using "qL".
+You may then proceed with commands such as me (|netrw-me|) to edit them.
+
+
+MARKING FILES BY QUICKFIX LIST					*netrw-qF* {{{2
 	(also see |netrw-mf|)
 
 One may convert |quickfix-error-lists| into a marked file list using "qF".
@@ -2225,6 +2262,16 @@
 	tar cf mynewtarball.tar 'file1' 'file2' ...
 
 
+MARKED FILES: ARGUMENT LIST				*netrw-ma* *netrw-mA*
+	    (See |netrw-mf| and |netrw-mr| for how to mark files)
+		      (uses the global marked-file list)
+
+Using ma, one moves filenames from the marked file list to the argument list.
+Using mA, one moves filenames from the argument list to the marked file list.
+
+See Also: |netrw-qF| |argument-list| |:args|
+
+
 MARKED FILES: COMPRESSION AND DECOMPRESSION		*netrw-mz* {{{2
 	    (See |netrw-mf| and |netrw-mr| for how to mark files)
 		      (uses the local marked file list)
@@ -2234,7 +2281,7 @@
 using the command specified by |g:netrw_compress|; by default,
 that's "gzip".
 
-For decompression, netrw provides a |Dictionary| of suffices and their
+For decompression, netrw uses a |Dictionary| of suffices and their
 associated decompressing utilities; see |g:netrw_decompress|.
 
 Remember that one can mark multiple files by regular expression
@@ -2289,7 +2336,7 @@
 	pattern
 <
 With /pattern/, editing will start with the first item on the |quickfix| list
-that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|).  The |:vimgrep|
+that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|, |:cclose|).  The |:vimgrep|
 command is in use, so without 'g' each line is added to quickfix list only
 once; with 'g' every match is included.
 
@@ -2758,6 +2805,16 @@
 				evaluation will be suppressed
 				(see |'ballooneval'|)
 
+ *g:netrw_sizestyle*		not defined: actual bytes (default)
+ 				="b" : actual bytes       (default)
+ 				="h" : human-readable (ex. 5k, 4m, 3g)
+				       uses 1000 base
+ 				="H" : human-readable (ex. 5K, 4M, 3G)
+				       uses 1024 base
+				The long listing (|netrw-i|) and query-file
+				maps (|netrw-qf|) will display file size
+				using the specified style.
+
   *g:netrw_usetab*		if this variable exists and is non-zero, then
 				the <tab> map supporting shrinking/expanding a
 				Lexplore or netrw window will be enabled.
@@ -3026,14 +3083,14 @@
 	Related: if you like this idea, you may also find :Lexplore
 	         (|netrw-:Lexplore|) or |g:netrw_chgwin| of interest
 
-Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'|
+Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|
 
 
 PREVIOUS WINDOW					*netrw-P* *netrw-prvwin* {{{2
 
-To edit a file or directory in the previously used (last accessed) window (see
-:he |CTRL-W_p|), press a "P".  If there's only one window, then the one window
-will be horizontally split (by default).
+To edit a file or directory under the cursor in the previously used (last
+accessed) window (see :he |CTRL-W_p|), press a "P".  If there's only one
+window, then the one window will be horizontally split (by default).
 
 If there's more than one window, the previous window will be re-used on
 the selected file/directory.  If the previous window's associated buffer
@@ -3172,7 +3229,7 @@
   * Else bring up a |:Lexplore| window
 
 If |g:netrw_usetab| exists or is zero, or if there is a pre-existing mapping
-for <c-tab>, then the <tab> will not be mapped.  One may map something other
+for <c-tab>, then the <c-tab> will not be mapped.  One may map something other
 than a <c-tab>, too: (but you'll still need to have had g:netrw_usetab set) >
 
 	nmap <unique> (whatever)	<Plug>NetrwShrink
@@ -3639,13 +3696,13 @@
 <
 Then run netrw as follows: >
 
-	vim -u netrw.vimrc --noplugins [some path here]
+	vim -u netrw.vimrc --noplugins -i NONE [some path here]
 <
 Perform whatever netrw commands you need to, and check that the problem is
 still present.  This procedure sidesteps any issues due to personal .vimrc
-settings and other plugins.  If the problem does not appear, then you need
-to determine what setting in your .vimrc is causing the conflict with netrw
-or which plugin.
+settings, .viminfo file, and other plugins.  If the problem does not appear,
+then you need to determine which setting in your .vimrc is causing the
+conflict with netrw or which plugin(s) is/are involved.
 
 Step 3: If the problem still is present, then get a debugging trace from
 netrw:
@@ -3700,6 +3757,37 @@
 ==============================================================================
 12. History						*netrw-history* {{{1
 
+	v155:	Oct 29, 2015	* (Timur Fayzrakhmanov) reported that netrw's
+				  mapping of ctrl-l was not allowing refresh of
+				  other windows when it was done in a netrw
+				  window.
+		Nov 05, 2015	* Improved s:TreeSqueezeDir() to use search()
+				  instead of a loop
+				* NetrwBrowse() will return line to
+				  w:netrw_bannercnt if cursor ended up in
+				  banner
+		Nov 16, 2015	* Added a <Plug>NetrwTreeSqueeze (|netrw-s-cr|)
+		Nov 17, 2015	* Commented out imaps -- perhaps someone can
+				  tell me how they're useful and should be
+				  retained?
+		Nov 20, 2015	* Added |netrw-ma| and |netrw-mA| support
+		Nov 20, 2015	* gx (|netrw-gx|) on an url downloaded the
+				  file in addition to simply bringing up the
+				  url in a browser.  Fixed.
+		Nov 23, 2015	* Added |g:netrw_sizestyle| support
+		Nov 27, 2015	* Inserted a lot of <c-u>s into various netrw
+				  maps.
+		Jan 05, 2016	* |netrw-qL| implemented to mark files based
+				  upon |location-list|s; similar to |netrw-qF|.
+		Jan 19, 2016	* using - call delete(directoryname,"d") -
+				  instead of using g:netrw_localrmdir if
+				  v7.4 + patch#1107 is available
+		Jan 28, 2016	* changed to using |winsaveview()| and
+				  |winrestview()|
+		Jan 28, 2016	* s:NetrwTreePath() now does a save and
+				  restore of view
+		Feb 08, 2016	* Fixed a tree-listing problem with remote
+				  directories
 	v154:	Feb 26, 2015	* (Yuri Kanivetsky) reported a situation where
 				  a file was not treated properly as a file
 				  due to g:netrw_keepdir == 1
@@ -3860,7 +3948,7 @@
 				  handling.
 				* |:Lexplore| path: will be used to update
 				  a left-side netrw browsing directory.
-		Mar 12, 2014	* |:netrw-s-cr|: use <s-cr>  to close
+		Mar 12, 2014	* |netrw-s-cr|: use <s-cr>  to close
 				  tree directory implemented
 		Mar 13, 2014	* (Tony Mechylynck) reported that using
 				  the browser with ftp on a directory,
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 773a3b9..bee8c80 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.4.  Last change: 2014 Jul 09
+*starting.txt*  For Vim version 7.4.  Last change: 2016 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -12,9 +12,10 @@
 4. Initialization		|initialization|
 5. $VIM and $VIMRUNTIME		|$VIM|
 6. Suspending			|suspend|
-7. Saving settings		|save-settings|
-8. Views and Sessions		|views-sessions|
-9. The viminfo file		|viminfo-file|
+7. Exiting			|exiting|
+8. Saving settings		|save-settings|
+9. Views and Sessions		|views-sessions|
+10. The viminfo file		|viminfo-file|
 
 ==============================================================================
 1. Vim arguments					*vim-arguments*
@@ -1133,7 +1134,20 @@
 to get the selection would make the program hang).
 
 ==============================================================================
-7. Saving settings					*save-settings*
+7. Exiting						*exiting*
+
+There are several ways to exit Vim:
+- Close the last window with `:quit`.  Only when there are no changes.
+- Close the last window with `:quit!`.  Also when there are changes.
+- Close all windows with `:qall`.  Only when there are no changes.
+- Close all windows with `:qall!`.  Also when there are changes.
+- Use `:cquit`.  Also when there are changes.
+
+When using `:cquit` or when there was an error message Vim exits with exit
+code 1.  Errors can be avoide by using `:silent!`.
+
+==============================================================================
+8. Saving settings					*save-settings*
 
 Mostly you will edit your vimrc files manually.  This gives you the greatest
 flexibility.  There are a few commands to generate a vimrc file automatically.
@@ -1195,7 +1209,7 @@
 'compatible' option to the output file first, because of these side effects.
 
 ==============================================================================
-8. Views and Sessions					*views-sessions*
+9. Views and Sessions					*views-sessions*
 
 This is introduced in sections |21.4| and |21.5| of the user manual.
 
@@ -1342,7 +1356,7 @@
 	au BufWinEnter *.c silent loadview
 
 ==============================================================================
-9. The viminfo file				*viminfo* *viminfo-file* *E136*
+10. The viminfo file				*viminfo* *viminfo-file* *E136*
 						*E575* *E576* *E577*
 If you exit Vim and later start it again, you would normally lose a lot of
 information.  The viminfo file can be used to remember that information, which
diff --git a/runtime/doc/tags b/runtime/doc/tags
index d079344..a11cb2b 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2550,7 +2550,6 @@
 :nbkey	netbeans.txt	/*:nbkey*
 :nbstart	netbeans.txt	/*:nbstart*
 :ne	editing.txt	/*:ne*
-:netrw-s-cr	pi_netrw.txt	/*:netrw-s-cr*
 :new	windows.txt	/*:new*
 :next	editing.txt	/*:next*
 :next_f	editing.txt	/*:next_f*
@@ -2836,6 +2835,7 @@
 :sign-unplace	sign.txt	/*:sign-unplace*
 :sil	various.txt	/*:sil*
 :silent	various.txt	/*:silent*
+:silent!	various.txt	/*:silent!*
 :sim	gui_w32.txt	/*:sim*
 :simalt	gui_w32.txt	/*:simalt*
 :sin	change.txt	/*:sin*
@@ -5168,11 +5168,13 @@
 ceil()	eval.txt	/*ceil()*
 ch.vim	syntax.txt	/*ch.vim*
 ch_close()	eval.txt	/*ch_close()*
+ch_log()	eval.txt	/*ch_log()*
 ch_logfile()	eval.txt	/*ch_logfile()*
 ch_open()	eval.txt	/*ch_open()*
 ch_readraw()	eval.txt	/*ch_readraw()*
 ch_sendexpr()	eval.txt	/*ch_sendexpr()*
 ch_sendraw()	eval.txt	/*ch_sendraw()*
+ch_setoptions()	eval.txt	/*ch_setoptions()*
 ch_status()	eval.txt	/*ch_status()*
 change-list-jumps	motion.txt	/*change-list-jumps*
 change-name	tips.txt	/*change-name*
@@ -5361,6 +5363,7 @@
 count-variable	eval.txt	/*count-variable*
 count1-variable	eval.txt	/*count1-variable*
 cp-default	version5.txt	/*cp-default*
+cpo	options.txt	/*cpo*
 cpo-!	options.txt	/*cpo-!*
 cpo-#	options.txt	/*cpo-#*
 cpo-$	options.txt	/*cpo-$*
@@ -5694,6 +5697,7 @@
 exepath()	eval.txt	/*exepath()*
 exim	starting.txt	/*exim*
 exists()	eval.txt	/*exists()*
+exiting	starting.txt	/*exiting*
 exp()	eval.txt	/*exp()*
 expand()	eval.txt	/*expand()*
 expand-env	options.txt	/*expand-env*
@@ -6206,6 +6210,7 @@
 g:netrw_servername	pi_netrw.txt	/*g:netrw_servername*
 g:netrw_sftp_cmd	pi_netrw.txt	/*g:netrw_sftp_cmd*
 g:netrw_silent	pi_netrw.txt	/*g:netrw_silent*
+g:netrw_sizestyle	pi_netrw.txt	/*g:netrw_sizestyle*
 g:netrw_sort_by	pi_netrw.txt	/*g:netrw_sort_by*
 g:netrw_sort_direction	pi_netrw.txt	/*g:netrw_sort_direction*
 g:netrw_sort_options	pi_netrw.txt	/*g:netrw_sort_options*
@@ -7213,6 +7218,7 @@
 netrw-:Vexplore	pi_netrw.txt	/*netrw-:Vexplore*
 netrw-C	pi_netrw.txt	/*netrw-C*
 netrw-D	pi_netrw.txt	/*netrw-D*
+netrw-I	pi_netrw.txt	/*netrw-I*
 netrw-O	pi_netrw.txt	/*netrw-O*
 netrw-P	pi_netrw.txt	/*netrw-P*
 netrw-P18	pi_netrw.txt	/*netrw-P18*
@@ -7262,6 +7268,7 @@
 netrw-downdir	pi_netrw.txt	/*netrw-downdir*
 netrw-edithide	pi_netrw.txt	/*netrw-edithide*
 netrw-editwindow	pi_netrw.txt	/*netrw-editwindow*
+netrw-enter	pi_netrw.txt	/*netrw-enter*
 netrw-ex	pi_netrw.txt	/*netrw-ex*
 netrw-explore	pi_netrw.txt	/*netrw-explore*
 netrw-explore-cmds	pi_netrw.txt	/*netrw-explore-cmds*
@@ -7298,10 +7305,12 @@
 netrw-listbookmark	pi_netrw.txt	/*netrw-listbookmark*
 netrw-listhack	pi_netrw.txt	/*netrw-listhack*
 netrw-login	pi_netrw.txt	/*netrw-login*
+netrw-mA	pi_netrw.txt	/*netrw-mA*
 netrw-mB	pi_netrw.txt	/*netrw-mB*
 netrw-mF	pi_netrw.txt	/*netrw-mF*
 netrw-mT	pi_netrw.txt	/*netrw-mT*
 netrw-mX	pi_netrw.txt	/*netrw-mX*
+netrw-ma	pi_netrw.txt	/*netrw-ma*
 netrw-mb	pi_netrw.txt	/*netrw-mb*
 netrw-mc	pi_netrw.txt	/*netrw-mc*
 netrw-md	pi_netrw.txt	/*netrw-md*
@@ -7362,6 +7371,7 @@
 netrw-psftp	pi_netrw.txt	/*netrw-psftp*
 netrw-putty	pi_netrw.txt	/*netrw-putty*
 netrw-qF	pi_netrw.txt	/*netrw-qF*
+netrw-qL	pi_netrw.txt	/*netrw-qL*
 netrw-qb	pi_netrw.txt	/*netrw-qb*
 netrw-qf	pi_netrw.txt	/*netrw-qf*
 netrw-quickcom	pi_netrw.txt	/*netrw-quickcom*
@@ -7378,6 +7388,7 @@
 netrw-rexplore	pi_netrw.txt	/*netrw-rexplore*
 netrw-rightmouse	pi_netrw.txt	/*netrw-rightmouse*
 netrw-s	pi_netrw.txt	/*netrw-s*
+netrw-s-cr	pi_netrw.txt	/*netrw-s-cr*
 netrw-settings	pi_netrw.txt	/*netrw-settings*
 netrw-settings-window	pi_netrw.txt	/*netrw-settings-window*
 netrw-sexplore	pi_netrw.txt	/*netrw-sexplore*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 11ee79f..aece38c 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 Feb 15
+*todo.txt*      For Vim version 7.4.  Last change: 2016 Feb 20
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -35,11 +35,8 @@
 -------------------- Known bugs and current work -----------------------
 
 +channel:
-- Move netbeans NL handling to channel.c, use it for NL mode channel
-- ch_open fails when socket isn't present yet. (Marcin Szamotulski)
-  Retry when error is "connection refused".
-- channel test waittime is disabled for MS-Windows, causes a crash.
-- channel needs both stdout and stderr (GUI implementation)
+- channel needs both stdout and stderr (GUI implementation, queues)
+   - ch_read() for stderr
 - implement TODO items in ":help channel":
    - implement ch_setoptions(handle, {options})
    - job_setoptions(job, {options})
@@ -48,7 +45,6 @@
    - err-cb
    - exit-cb  move code from mch_clear_job()
    - job argument: killonexit
-   - ch_read() for stderr
    - ch_getjob(handle)
    - ch_read(handle [, timeout])
    - ch_readall(handle [, timeout])
@@ -57,6 +53,12 @@
    - job_gethandle(), job_sethandle()
    - add ch_status(): Whether channel is open.  Perhaps also mode, timeout.
    - When channel closes invoke "close-cb".
+- Add "call" to call a function with a list of arguments. (Damien)
+    merge "expr" and "eval", send something back if there is a third arg?
+- A callback on ch_sendraw() should be put at the end of the list of callback
+  handlers.  When a message arrives invoke the first one and remove it.
+- Support channel without socket support.  Useful for starting a job with
+  pipes.  Need another feature, +socket ?
 - Move more details from eval.txt to channel.txt.  Add tags in eval.txt.
 - When receiving malformed json starting with a quote it doesn't get
   discarded.
@@ -79,6 +81,7 @@
 - json: implement UTF-16 surrogate pair.
 - For connection to server, a "keep open" flag would be useful.  Retry
   connecting in the main loop with zero timeout.
+
 More plugin support:
 - Have a way to install a callback from the main loop.  Called every second or
   so.
@@ -102,6 +105,10 @@
     0
 It's because tv_equal() works different.
 
+Compiler warnings. (John Marriott, Feb 17)
+
+Compiler warnings in if_ole.cpp.  Patch by Ken Takata, Feb 18.
+
 Add "runtime/bundles" ?
     runtime/bundles/netrw/spec.vim
     runtime/bundles/netrw/autoload/netrw.vim
@@ -122,6 +129,8 @@
 ~/vim/packages/netrw/def/netrw/plugin/netrw.vim
 ~/vim/packages/netrw/opt/nwdebug/plugin/nwdebug.vim
 
+Patch to add GTK 3 support. (Kazunobu Kuriyama, 2016 Feb 13)
+
 Why does this: 	echo "a" . 1.1
 result in:	a11
 Should recognize float (so long as it's not ".1.1").
@@ -170,6 +179,9 @@
   matches the empty string. (Dominique Pelle, 2015 Oct 2, Nov 24)
 - Search for \\~ causes error E874.
 
+Patch to fix that folds close with autocomplete.  #643
+Christian Brabandt, 2016 Feb 18.
+
 Also include update_curswant() fix for getcurpos(). (Christian Brabandt, 2016
 Feb 9)
 
@@ -275,7 +287,7 @@
 
 Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3)
 
-Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 14)
+Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 17)
 Only remembers one error.
 
 Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
@@ -317,6 +329,9 @@
 replacement includes hit. Reported by John Beckett, fix by Christian Brabandt,
 2016 Jan 11.
 
+Patch to add :mapgroup, put mappings in a group like augroup.
+(Yasuhiro Matsumoto, 2016 Feb 19)
+
 Value returned by virtcol() changes depending on how lines wrap.  This is
 inconsistent with the documentation.
 
@@ -326,9 +341,6 @@
 Build with Python on Mac does not always use the right library.
 (Kazunobu Kuriyama, 2015 Mar 28)
 
-Patch to add GTK 3 support. (Kazunobu Kuriyama, 2016 Feb 13)
-Does not fully work yet.
-
 Need a Vim equivalent of Python's None and a way to test for it.
 Use v:none.  var == v:none
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 3c2ea59..8fe47bb 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.4.  Last change: 2016 Feb 15
+*various.txt*   For Vim version 7.4.  Last change: 2016 Feb 18
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -515,7 +515,7 @@
 
 :redi[r] END		End redirecting messages.  {not in Vi}
 
-						*:sil* *:silent*
+						*:sil* *:silent* *:silent!*
 :sil[ent][!] {command}	Execute {command} silently.  Normal messages will not
 			be given or added to the message history.
 			When [!] is added, error messages will also be
