diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 40949bb..c148455 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.3.  Last change: 2011 May 19
+*autocmd.txt*   For Vim version 7.3.  Last change: 2011 Aug 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -448,6 +448,9 @@
 				'modified' if successful, unless '+' is in
 				'cpo' and writing to another file |cpo-+|.
 				The buffer contents should not be changed.
+				When the command resets 'modified' the undo
+				information is adjusted to mark older undo
+				states as 'modified', like |:write| does.
 				|Cmd-event|
 							*BufWritePost*
 BufWritePost			After writing the whole buffer to a file
@@ -508,6 +511,7 @@
 				not expect or that is slow.
 							*CursorMovedI*
 CursorMovedI			After the cursor was moved in Insert mode.
+				Not triggered when the popup menu is visible.
 				Otherwise the same as CursorMoved.
 							*EncodingChanged*
 EncodingChanged			Fires off after the 'encoding' option has been
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 12d9504..624b47d 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2011 Jul 13
+*eval.txt*	For Vim version 7.3.  Last change: 2011 Aug 29
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -39,7 +39,7 @@
 							*E712*
 There are six types of variables:
 
-Number		A 32 bit signed number.  |expr-number| *Number*
+Number		A 32 or 64 bit signed number.  |expr-number| *Number*
 		Examples:  -123  0x10  0177
 
 Float		A floating point number. |floating-point-format| *Float*
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 213f455..b2e6a0c 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 7.3.  Last change: 2010 Nov 03
+*gui.txt*       For Vim version 7.3.  Last change: 2011 Jul 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -147,6 +147,15 @@
 If you are running the X Window System, you can get information about the
 window Vim is running in with this command: >
 	:!xwininfo -id $WINDOWID
+<
+							*gui-IME* *iBus*
+Input methods for international characters in X that rely on the XIM
+framework, most notably iBus, have been known to produce undesirable results
+in gVim. These may include an inability to enter spaces, or long delays
+between typing a character and it being recognized by the application.
+
+One workaround that has been successful, for unknown reasons, is to prevent
+gvim from forking into the background by starting it with the |-f| argument.
 
 ==============================================================================
 2. Scrollbars						*gui-scrollbars*
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index 7b60c3b..16758b0 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt*   For Vim version 7.3.  Last change: 2010 Dec 19
+*gui_w32.txt*   For Vim version 7.3.  Last change: 2011 Jul 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -137,6 +137,9 @@
 And if there already is a gvim running:
 "Edit with existing gvim"   -- edit the file with the running gvim
 
+The "edit with existing Vim" entries can be disabled by adding an entry in the
+registry under HKLM\Software\Vim\Gvim, named DisableEditWithExisting, and with
+any value.
 						*install-registry*
 You can add the "Edit with Vim" menu entry in an easy way by using the
 "install.exe" program.  It will add several registry entries for you.
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index 6d16500..1ae656e 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 7.3.  Last change: 2010 Jul 20
+*gui_x11.txt*   For Vim version 7.3.  Last change: 2011 Sep 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -53,6 +53,8 @@
 ":gui -b".
 
 "gvim --nofork" does the same as "gvim -f".
+								*E851* *E852*
+When starting the GUI fails Vim will try to continue running in the terminal.
 
 If you want the GUI to run in the foreground always, include the 'f'
 flag in 'guioptions'.  |-f|.
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 43c4356..03d24a5 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 7.3.  Last change: 2011 May 07
+*if_pyth.txt*   For Vim version 7.3.  Last change: 2011 Aug 19
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
@@ -380,7 +380,7 @@
 							*has-python*
 You can test what Python version is available with: >
 	if has('python')
-	  echo 'there is Pyton 2.x'
+	  echo 'there is Python 2.x'
   	elseif has('python3')
 	  echo 'there is Python 3.x'
 	endif
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 7767ce8..9a4aaa7 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.3.  Last change: 2011 Jul 15
+*indent.txt*    For Vim version 7.3.  Last change: 2011 Sep 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -132,8 +132,8 @@
 the option character can be one of these (N is any number):
 	N	indent N spaces
 	-N	indent N spaces to the left
-	Ns	N times 'shiftwidth spaces
-	-Ns	N times 'shiftwidth spaces to the left
+	Ns	N times 'shiftwidth' spaces
+	-Ns	N times 'shiftwidth' spaces to the left
 
 In the list below,
 "N" represents a number of your choice (the number can be negative).  When
@@ -432,7 +432,7 @@
 		       c3			    c3
 		      ) && c4;			) && c4;
 <
-							*cino-2*
+							*cino-w*
 	wN    When in unclosed parentheses and N is non-zero and either
 	      using "(0" or "u0", respectively, or using "U0" and the unclosed
 	      parentheses is the first non-white character in its line, line
@@ -706,6 +706,43 @@
 	let g:pyindent_continue = '&sw * 2'
 
 
+R								*ft-r-indent*
+
+Function arguments are aligned if they span for multiple lines. If you prefer
+do not have the arguments of functions aligned, put in your |vimrc|:
+>
+   let r_indent_align_args = 0
+<
+All lines beginning with a comment character, #, get the same indentation
+level of the normal R code. Users of Emacs/ESS may be used to have lines
+beginning with a single # indented in the 40th column, ## indented as R code,
+and ### not indented. If you prefer that lines beginning with comment
+characters are aligned as they are by Emacs/ESS, put in your |vimrc|:
+>
+   let r_indent_ess_comments = 1
+<
+If you prefer that lines beginning with a single # are aligned at a column
+different from the 40th one, you should set a new value to the variable
+r_indent_comment_column, as in the example below:
+>
+   let r_indent_comment_column = 30
+<
+Any code after a line that ends with "<-" is indented. Emacs/ESS does not
+indent the code if it is a top level function. If you prefer that the
+Vim-R-plugin behaves like Emacs/ESS in this regard, put in your |vimrc|:
+>
+   let r_indent_ess_compatible = 1
+<
+Below is an example of indentation with and without this option enabled:
+>
+   ### r_indent_ess_compatible = 1           ### r_indent_ess_compatible = 0
+   foo <-                                    foo <-
+       function(x)                               function(x)
+   {                                             {
+       paste(x)                                      paste(x)
+   }                                             }
+<
+
 SHELL							*ft-sh-indent*
 
 The amount of indent applied under various circumstances in a shell file can
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index bd9f382..c01f1d0 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.3.  Last change: 2011 Jan 04
+*index.txt*     For Vim version 7.3.  Last change: 2011 Aug 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1261,7 +1261,7 @@
 |:k|		:k		set a mark
 |:keepalt|	:keepa[lt]	following command keeps the alternate file
 |:keepmarks|	:kee[pmarks]	following command keeps marks where they are
-|:keepjumps|	:keepj[jumps]	following command keeps jumplist and marks
+|:keepjumps|	:keepj[umps]	following command keeps jumplist and marks
 |:lNext|	:lN[ext]	go to previous entry in location list
 |:lNfile|	:lNf[ile]	go to last entry in previous file
 |:list|		:l[ist]		print lines
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 4ee1c79..24a17d5 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.3.  Last change: 2010 Nov 10
+*insert.txt*    For Vim version 7.3.  Last change: 2011 Sep 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1020,6 +1020,21 @@
 The function must return a List with the matching words.  These matches
 usually include the "a:base" text.  When there are no matches return an empty
 List.
+
+In order to return more information than the matching words, return a Dict
+that contains the List.  The Dict can have these items:
+	words		The List of matching words (mandatory).
+	refresh		A string to control re-invocation of the function
+			(optional).
+			The only value currently recognized is "always", the
+			effect is that the function is called whenever the
+			leading text is changed.
+Other items are ignored.
+
+For example, the function can contain this: >
+	let matches = ... list of words ...
+	return {'words': matches, 'refresh': 'always'}
+<
 						*complete-items*
 Each list item can either be a string or a Dictionary.  When it is a string it
 is used as the completion.  When it is a Dictionary it can contain these
@@ -1040,9 +1055,10 @@
 	empty		when non-zero this match will be added even when it is
 			an empty string
 
-All of these except 'icase' must be a string.  If an item does not meet these
-requirements then an error message is given and further items in the list are
-not used.  You can mix string and Dictionary items in the returned list.
+All of these except 'icase', 'dup' and 'empty' must be a string.  If an item
+does not meet these requirements then an error message is given and further
+items in the list are not used.  You can mix string and Dictionary items in
+the returned list.
 
 The "menu" item is used in the popup menu and may be truncated, thus it should
 be relatively short.  The "info" item can be longer, it will  be displayed in
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 2ebf2eb..92e2166 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.3.  Last change: 2011 Jun 13
+*map.txt*       For Vim version 7.3.  Last change: 2011 Aug 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -228,7 +228,7 @@
 
 For abbreviations |v:char| is set to the character that was typed to trigger
 the abbreviation.  You can use this to decide how to expand the {lhs}.  You
-you should not either insert or change the v:char.
+should not either insert or change the v:char.
 
 Be very careful about side effects!  The expression is evaluated while
 obtaining characters, you may very well make the command dysfunctional.
@@ -544,6 +544,7 @@
 	<Char-123>	character 123
 	<Char-033>	character 27
 	<Char-0x7f>	character 127
+	<S-Char-114>    character 114 ('r') shifted ('R')
 This is useful to specify a (multi-byte) character in a 'keymap' file.
 Upper and lowercase differences are ignored.
 
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 2f635bc..ccf6898 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.3.  Last change: 2011 Jun 02
+*motion.txt*    For Vim version 7.3.  Last change: 2011 Jul 19
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1017,8 +1017,6 @@
 <Tab>		or					*CTRL-I* *<Tab>*
 CTRL-I			Go to [count] newer cursor position in jump list
 			(not a motion command).
-			In a |quickfix-window| it takes you to the position of
-			the error under the cursor.
 			{not in Vi}
 			{not available without the |+jumplist| feature}
 
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 3bfc05a..b256cb6 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.3.  Last change: 2011 Jul 07
+*options.txt*	For Vim version 7.3.  Last change: 2011 Sep 09
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -4861,6 +4861,10 @@
 	   written.  A ":set nomodified" command also resets the original
 	   values to the current values and the 'modified' option will be
 	   reset.
+	This option is not set when a change is made to the buffer as the
+	result of a BufNewFile, BufRead/BufReadPost, BufWritePost,
+	FileAppendPost or VimLeave autocommand event.  See |gzip-example| for
+	an explanation.
 	When 'buftype' is "nowrite" or "nofile" this option may be set, but
 	will be ignored.
 
@@ -5898,8 +5902,11 @@
 	"bash.exe -c ls" or "command.com /c dir".  For the MS-DOS-like
 	systems, the default is set according to the value of 'shell', to
 	reduce the need to set this option by the user.  It's not used for
-	OS/2 (EMX figures this out itself).  See |option-backslash| about
-	including spaces and backslashes.  See |dos-shell|.
+	OS/2 (EMX figures this out itself).
+	On Unix it can have more than one flag.  Each white space separated
+	part is passed as an argument to the shell command.
+	See |option-backslash| about including spaces and backslashes.
+	Also see |dos-shell| for MS-DOS and MS-Windows.
 	This option cannot be set from a |modeline| or in the |sandbox|, for
 	security reasons.
 
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 81d1841..6fc0769 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 7.3.  Last change: 2010 Aug 16
+*os_vms.txt*    For Vim version 7.3.  Last change: 2011 Aug 14
 
 
 		  VIM REFERENCE MANUAL
@@ -38,9 +38,6 @@
 Or use one of the mirrors:
 	ftp://ftp.vim.org/pub/vim/MIRRORS
 
-You will need both the Unix and Extra archives to build vim.exe for VMS.
-For using Vim's full power you will need the runtime files as well.
-
 You can download precompiled executables from:
 	http://www.polarhome.com/vim/
 	ftp://ftp.polarhome.com/pub/vim/
@@ -75,7 +72,7 @@
 4. Problems						*vms-problems*
 
 The code has been tested under Open VMS 6.2 - 8.2 on Alpha, VAX and IA64
-platforms with the DEC C compiler.  It should work without bigger problems.
+platforms with the DEC C compiler.  It should work without big problems.
 If your system does not have some include libraries you can tune up in
 OS_VMS_CONF.H file.
 
@@ -88,11 +85,11 @@
 
 Note: Under VAX it should work with the DEC C compiler without problems.  The
 VAX C compiler is not fully ANSI C compatible in pre-processor directives
-semantics, therefore you have to use a converter program what will do the lion
+semantics, therefore you have to use a converter program that will do the lion
 part of the job.  For detailed instructions read file INSTALLvms.txt
 
-MMS_VIM.EXE is build together with VIM.EXE, but for XD.EXE you should
-change to subdirectory and build it separately.
+MMS_VIM.EXE is build together with VIM.EXE, but for XXD.EXE you should
+change to a subdirectory and build it separately.
 
 CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
 specific source might contain CTAGS source files as described above.
@@ -184,9 +181,9 @@
 
 The easiest way is just rename example files.  You may leave the menu file
 (MENU.VIM) and files vimrc and gvimrc in the original $VIM directory.  It will
-be default setup for all users, and for users it is enough just to have their
-own additions or resetting in their home directory in files .vimrc and .gvimrc.
-It should work without problems.
+be the default setup for all users, and for users it is enough to just have
+their own additions or resetting in their home directory in files .vimrc and
+.gvimrc.  It should work without problems.
 
 Note: Remember, system rc files (default for all users) don't have a leading
 ".".  So, system rc files are: >
@@ -200,7 +197,7 @@
 	sys$login:.vimrc
 	sys$login:.gvimrc
 
-You can check that everything is on the right place with the :version command.
+You can check that everything is at the right place with the :version command.
 
 Example LOGIN.COM: >
 
@@ -209,15 +206,15 @@
 	$ gv*im:== spawn/nowait/input=NLA0 mcr VIM:VIM.EXE -g -GEOMETRY 80x40
 	$ set disp/create/node=192.168.5.223/trans=tcpip
 
-Note: This set-up should be enough, if you are working on standalone server or
-clustered environment, but if you want to use Vim as internode editor in
+Note: This set-up should be enough, if you are working on a standalone server or
+clustered environment, but if you want to use Vim as an internode editor in
 DECNET environment, it will satisfy as well.
 You just have to define the "whole" path: >
 
 	$ define VIM "<server_name>[""user password""]::device:<path>"
 	$ vi*m :== "mcr VIM:VIM.EXE"
 
-As for example: >
+For example: >
 
 	$ define VIM "PLUTO::RF10:[UTIL.VIM]"
 	$ define VIM "PLUTO""ZAY mypass""::RF10:[UTIL.VIM]" ! if passwd required
@@ -300,12 +297,12 @@
 
 4) If you are working on MS-Windows or some other non X/Window environment
    you need to set up one X server and run Vim as in point 2.
-   For MS-Windows there are available free X servers as MIX , Omni X etc.,
+   For MS-Windows there are available free X servers as MIX, Omni X etc.,
    as well as excellent commercial products as eXcursion or ReflectionX with
    built-in DEC support.
 
 Please note, that executables without GUI are slightly faster during startup
-then with enabled GUI in character mode. Therefore, if you do not use GUI
+than with enabled GUI in character mode. Therefore, if you do not use GUI
 features, it is worth to choose non GUI executables.
 
 ==============================================================================
@@ -326,8 +323,8 @@
 8.12 diff-mode
 8.13 Allow '$' in C keywords
 8.14 VIMTUTOR for beginners
-8.15 Slow start in console mode issue 
-8.16 Common VIM directory - different architectures 
+8.15 Slow start in console mode issue
+8.16 Common VIM directory - different architectures
 
 8.1 Backspace/delete
 
@@ -360,7 +357,7 @@
 	:set nowritebackup   " does not have any purpose on VMS.  It's the
 			     " default.
 
-Recovery is working perfect as well from the default swap file.
+Recovery is working perfectly as well from the default swap file.
 Read more with :help swapfile
 
 (Claude Marinier <ClaudeMarinier@xwavesolutions.com> Vim 5.5, Zoltan Arpadffy
@@ -386,7 +383,7 @@
 rf10:<user.zay.work>test.c;1
 
 (David Elins <delins@foliage.com>, Jerome Lauret
-<JLAURET@mail.chem.sunysb.edu> Vim 5.6 )
+<JLAURET@mail.chem.sunysb.edu> Vim 5.6)
 
 
 8.5 Remote host invocation
@@ -445,14 +442,14 @@
     builtin_dumb
 defaulting to 'vt320'
 ---
-The solution is to define default terminal name: >
+The solution is to define the default terminal name: >
 
 	$ ! unknown terminal name.  Let us use vt320 or ansi instead.
 	$ ! Note: it's case sensitive
 	$ define term "vt320"
 
-Terminals from VT100 to VT320 (as V300, VT220, VT200 ) do not need any extra
-keyboard mappings.  They should work perfect as they are, including arrows,
+Terminals from VT100 to VT320 (as V300, VT220, VT200) do not need any extra
+keyboard mappings.  They should work perfectly as they are, including arrows,
 Ins, Del buttons etc., except Backspace in GUI mode.  To solve it, add to
 .gvimrc: >
 
@@ -465,8 +462,8 @@
 
 	set ttyfast	" set fast terminal
 
-Note: if you're using Vim on remote host or through very slow connection, it's
-recommended to avoid fast terminal option with: >
+Note: if you're using Vim on remote host or through a very slow connection, it's
+recommended to avoid the fast terminal option with: >
 
 	set nottyfast   " set terminal to slow mode
 
@@ -483,8 +480,8 @@
 
 OpenVMS users always have to be aware that the Vim command :! "just" drop them
 to DCL prompt.  This feature is possible to use without any problem with all
-DCL commands, but if we want to execute some program as XXD, CTAGS, JTAGS etc.
-we're running into trouble if we follow the Vim documentation (see: help
+DCL commands, but if we want to execute some programs such as XXD, CTAGS, JTAGS,
+etc.  we're running into trouble if we follow the Vim documentation (see: help
 xxd).
 
 Solution: Execute with the MC command and add the full path to the executable.
@@ -534,7 +531,7 @@
 
 	$define SYS$PRINT HP5ANSI
 
-You can print out whole buffer or just the marked area.
+You can print out the whole buffer or just the marked area.
 More info under :help hardcopy
 
 (Zoltan Arpadffy, Vim 6.0c)
@@ -561,16 +558,16 @@
 From 6.0 diff functionality has been implemented, but OpenVMS does not use
 GNU/Unix like diff therefore built in diff does not work.
 There is a simple solution to solve this anomaly.  Install a Unix like diff
-and Vim will work perfect in diff mode too.  You just have to redefine your
+and Vim will work perfectly in diff mode too.  You just have to redefine your
 diff program as: >
 
 	define /nolog diff <GNU_PATH>diff.exe
 
 Another, more sophisticated solution is described below (8.12 diff-mode)
-There are some other programs as patch, make etc that may cause same problems.
-At www.polarhome.com is possible to download an GNU package for Alpha and VAX
-boxes that is meant to solve GNU problems on OpenVMS.
-( Zoltan Arpadffy, Vim 6.1)
+There are other programs such as patch, make etc that may cause the same
+problems.  At www.polarhome.com is possible to download an GNU package for
+Alpha and VAX boxes that is meant to solve GNU problems on OpenVMS.
+(Zoltan Arpadffy, Vim 6.1)
 
 
 8.12 diff-mode
@@ -632,7 +629,7 @@
     3. VIM  diff:  $ VIMDIFF  <FILE1> <FILE2>
     4. GVIM diff:  $ GVIMDIFF <FILE1> <FILE2>
 
-( Coen Engelbarts, Vim 6.1)
+(Coen Engelbarts, Vim 6.1)
 
 
 8.13 Allow '$' in C keywords
@@ -653,35 +650,36 @@
 tag-lookup, work on the whole identifier.  (Ctags on VMS also supports '$' in
 C keywords since ctags version 5.1.)
 
-( Coen Engelbarts, Vim 6.1)
+(Coen Engelbarts, Vim 6.1)
 
 8.14 VIMTUTOR for beginners
 
-It exits VIMTUTOR.COM DCL script that can help Vim beginners to learn/make
-first steps with Vim on OpenVMS.  Depending of binary distribution you may
-start it with: >
+The VIMTUTOR.COM DCL script can help Vim beginners to learn/make their first
+steps with Vim on OpenVMS.  Depending of binary distribution you may start it
+with: >
 
 	@vim:vimtutor
 
 (Thomas.R.Wyant III, Vim 6.1)
 
-8.14 Slow start in console mode issue
+8.16 Slow start in console mode issue
 
 As GUI/GTK Vim works equally well in console mode, many administrators
 deploy those executables system wide.
 Unfortunately, on a remote slow connections GUI/GTK executables behave rather
-slow when user wants to run Vim just in the console mode - because of X environment detection timeout.
+slow when user wants to run Vim just in the console mode - because of X
+environment detection timeout.
 
 Luckily, there is a simple solution for that. Administrators need to deploy
 both GUI/GTK build and just console build executables, like below: >
 
     |- vim73
     |----- doc
-    |----- syntax        
+    |----- syntax
        vimrc    (system rc files)
        gvimrc
-       gvim.exe (the renamed GUI or GTK built vim.exe)      
-       vim.exe  (the console only executable) 
+       gvim.exe (the renamed GUI or GTK built vim.exe)
+       vim.exe  (the console only executable)
 
 Define system symbols like below in for ex in LOGIN.COM or SYLOGIN.COM: >
 
@@ -692,7 +690,7 @@
 	$ gv*im :== spawn/nowait/input=NLA0 mcr VIM:GVIM.EXE -g -GEOMETRY 80x40
 
 
-Like this, users that do not have X environment and want to use Vim just in 
+Like this, users that do not have X environment and want to use Vim just in
 console mode can avoid performance problems.
 
 (Zoltan Arpadffy, Vim 7.2)
@@ -714,8 +712,8 @@
 +---------------------------------+
 
 It is convenient to have a common VIM directory but execute different
-executables. 
-There are more solutions for this problem:
+executables.
+There are several solutions for this problem:
 
 Solution 1.  All executables in the same directory with different names
 This is easily done with the following script that can be added
@@ -769,7 +767,7 @@
 Version 7.3
 - CTAGS 5.8 included
 - VMS compile warnings fixed - floating-point overflow warning corrected on VAX
-- filepath completition corrected - too many chars were escaped in filename
+- filepath completion corrected - too many chars were escaped in filename
   and shell commands
 - the following plugins are included into VMS runtime:
 	genutils 2.4, multiselect 2.2, multvals 3.1, selectbuf 4.3,
@@ -784,10 +782,10 @@
 Version 7.2 (2008 Aug 9)
 - VCF files write corrected
 - CTAGS 5.7 included
-- corrected make_vms.mms (on VAX gave syntax error) 
+- corrected make_vms.mms (on VAX gave syntax error)
 
 Version 7.1 (2007 Jun 15)
-- create TAGS file from menu 
+- create TAGS file from menu
 
 Version 7 (2006 May 8)
 - Improved low level char input (affects just console mode)
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index 92e85c7..0452bfa 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt*  For Vim version 7.3.  Last change: 2011 May 28
+*os_win32.txt*  For Vim version 7.3.  Last change: 2011 Aug 14
 
 
 		  VIM REFERENCE MANUAL    by George Reilly
@@ -316,11 +316,11 @@
    There are two optional arguments (see the next Q):
        /min  the window will be minimized.
        /b"   no console window will be opened
-   You can only one of these flags at a time.  A second second one will be
+   You can use only one of these flags at a time.  A second one will be
    treated as the start of the command.
 
 Q. How do I avoid getting a window for programs that I run asynchronously?
-A. You have two possible solutions depending on what exactly do you want:
+A. You have two possible solutions depending on what you want:
    1) You may use the /min flag in order to run program in a minimized state
       with no other changes. It will work equally for console and GUI
       applications.
@@ -328,7 +328,7 @@
       console window for them (GUI applications are not affected). But you
       should use this flag only if the application you run doesn't require any
       input.  Otherwise it will get an EOF error because its input stream
-      (stdin) would be redirected to \\.\NUL (stdoud and stderr too).
+      (stdin) would be redirected to \\.\NUL (stdout and stderr too).
 
    Example for a console application, run Exuberant ctags: >
         :!start /min ctags -R .
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 1c7feed..9b7eacc 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.3.  Last change: 2011 May 25
+*pattern.txt*   For Vim version 7.3.  Last change: 2011 Jul 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index 4d5a237..73e3e66 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -1,4 +1,4 @@
-*pi_vimball.txt*	For Vim version 7.3.  Last change: 2011 Apr 02
+*pi_vimball.txt*	For Vim version 7.3.  Last change: 2011 Aug 14
 
 			       ----------------
 			       Vimball Archiver
@@ -16,6 +16,7 @@
 1. Contents				*vba* *vimball* *vimball-contents*
 
 	1. Contents......................................: |vimball-contents|
+	2. Vimball Introduction..........................: |vimball-intro|
 	3. Vimball Manual................................: |vimball-manual|
 	   MkVimball.....................................: |:MkVimball|
 	   UseVimball....................................: |:UseVimball|
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index 25242b8..13c604c 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*pi_zip.txt*	For Vim version 7.3.  Last change: 2011 May 24
+*pi_zip.txt*	For Vim version 7.3.  Last change: 2011 Aug 14
 
 				+====================+
 				| Zip File Interface |
@@ -69,7 +69,6 @@
 	let g:loaded_zipPlugin= 1
 	let g:loaded_zip      = 1
 <
-<
 
 ==============================================================================
 3. Additional Extensions					*zip-extension*
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index ba9083c..e390e4c 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.3.  Last change: 2010 Sep 18
+*starting.txt*  For Vim version 7.3.  Last change: 2011 Jul 22
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -424,12 +424,7 @@
 		"-d con:30/10/600/150".  But you can also use it to start
 		editing on another device, e.g., AUX:.  {not in Vi}
 							*-f*
--f		Amiga: Do not restart Vim to open a new window.  This
-		option should be used when Vim is started by a program that
-		will wait for the edit session to finish (e.g., mail or
-		readnews).  See |amiga-window|.
-
-		GUI: Do not disconnect from the program that started Vim.
+-f		GUI: Do not disconnect from the program that started Vim.
 		'f' stands for "foreground".  If omitted, the GUI forks a new
 		process and exits the current one.  "-f" should be used when
 		gvim is started by a program that will wait for the edit
@@ -437,8 +432,14 @@
 		never to fork, include 'f' in 'guioptions' in your |gvimrc|.
 		Careful: You can use "-gf" to start the GUI in the foreground,
 		but "-fg" is used to specify the foreground color.  |gui-fork|
+
+		Amiga: Do not restart Vim to open a new window.  This
+		option should be used when Vim is started by a program that
+		will wait for the edit session to finish (e.g., mail or
+		readnews).  See |amiga-window|.
 		{not in Vi}
 
+
 							*--nofork*
 --nofork	GUI: Do not fork.  Same as |-f|.
 							*-u* *E282*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index e472a3b..0f45dc5 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4233,6 +4233,8 @@
 E849	syntax.txt	/*E849*
 E85	options.txt	/*E85*
 E850	change.txt	/*E850*
+E851	gui_x11.txt	/*E851*
+E852	gui_x11.txt	/*E852*
 E86	windows.txt	/*E86*
 E87	windows.txt	/*E87*
 E88	windows.txt	/*E88*
@@ -4963,7 +4965,6 @@
 cino-)	indent.txt	/*cino-)*
 cino-+	indent.txt	/*cino-+*
 cino-/	indent.txt	/*cino-\/*
-cino-2	indent.txt	/*cino-2*
 cino-:	indent.txt	/*cino-:*
 cino-=	indent.txt	/*cino-=*
 cino->	indent.txt	/*cino->*
@@ -4990,6 +4991,7 @@
 cino-star	indent.txt	/*cino-star*
 cino-t	indent.txt	/*cino-t*
 cino-u	indent.txt	/*cino-u*
+cino-w	indent.txt	/*cino-w*
 cino-{	indent.txt	/*cino-{*
 cino-}	indent.txt	/*cino-}*
 cinoptions-values	indent.txt	/*cinoptions-values*
@@ -5690,6 +5692,7 @@
 ft-python-indent	indent.txt	/*ft-python-indent*
 ft-python-syntax	syntax.txt	/*ft-python-syntax*
 ft-quake-syntax	syntax.txt	/*ft-quake-syntax*
+ft-r-indent	indent.txt	/*ft-r-indent*
 ft-readline-syntax	syntax.txt	/*ft-readline-syntax*
 ft-rexx-syntax	syntax.txt	/*ft-rexx-syntax*
 ft-ruby-omni	insert.txt	/*ft-ruby-omni*
@@ -6022,6 +6025,7 @@
 gu	change.txt	/*gu*
 gugu	change.txt	/*gugu*
 gui	gui.txt	/*gui*
+gui-IME	gui.txt	/*gui-IME*
 gui-clipboard	gui_w32.txt	/*gui-clipboard*
 gui-colors	syntax.txt	/*gui-colors*
 gui-extras	gui.txt	/*gui-extras*
@@ -6230,6 +6234,7 @@
 i<	motion.txt	/*i<*
 i>	motion.txt	/*i>*
 iB	motion.txt	/*iB*
+iBus	gui.txt	/*iBus*
 iW	motion.txt	/*iW*
 i[	motion.txt	/*i[*
 i]	motion.txt	/*i]*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 613a25d..6f508fa 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2011 Jul 15
+*todo.txt*      For Vim version 7.3.  Last change: 2011 Sep 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,21 +34,40 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+Patch to start GTK only after forking. (Tim Starling, 2011 Sep 12)
+
+Patch for Lua debug(). (Rob Hoelz, 2011 Sep 12)
+
 Go through more coverity reports.
 
+Using "." to repeat a Visual delete counts bytes, not characters.  Can this be
+fixed? (Connor Lane Smith, 2011 Sep 1)
+
+Patch to allow getchar() in expression mapping.
+Why was typeahead saved and restored? (James Vega, 2011 Aug 31)
+
 Crash in autocomplete, valgrind log. (Greg Weber, 2011 Apr 22)
 
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
 
+Patch to fail if configure can't find an interface, such as Python.
+(Shlomi Fish, 2011 Jul 11)
+
 Patch to support UTF-8 for Hangul. (Shawn Y.H. Kim, 2011 May 1)
 Needs more work.
 
-With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
-register. (Michael Seiwald, 2011 Jun 28)
+Patch for glob() returning a list. (Christian Brabandt, 2011 Aug 24, second
+one)
 
-The :z command doesn't work exactly as it should. (ChangZhuo Chen, 2011 Mar 2)
-Compare with how old Vi works and with posix spec.  terminal is 80 x 24,
-'scroll' option set to 11.
+Patch for: (Christian Brabandt, 2011 Aug 22)
+-   Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
+    below/above).
+
+Patch for: (Christian Brabandt, 2011 Aug 24, updated patch)
+8   ":sign unplace * file={filename}" should work.  Also: ":sign unplace *
+    buffer={bufnr}".  So one can remove all signs for one file/buffer.
+
+Problem with l: dictionary being locked in a function. (ZyX, 2011 Jul 21)
 
 'cursorline' is displayed too short when there are concealed characters and
 'list' is set.  (Dennis Preiser)
@@ -63,29 +82,12 @@
 only one of the two ends gets the cchar displayed. (Brett Stahlman, 2010 Aug
 21, Ben Fritz, 2010 Sep 14)
 
-When opening file from windows explorer, characters inside [] cause
-problems, even though double quotes are used. (Manuel Stol, 2011 Mar 9)
-
-Patch to change the meaning of \n in substitute(). (motoya kurotsu, 2011 Mar 8)
-
-Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
-Winckler, 2011 May 11)
-Use function to set paste option and restore it, use CTRL-R+ to paste.
-
-Help file foldexpr (ZyX)
+Need to escape $HOME on Windows?  (ZyX, 2011 Jul 21)
 
 Bug in repeating Visual "u". (Lawrence Kesteloot, 2010 Dec 20)
 
-Patch to automatically get version number into NSIS. (Guopeng Wen, 2011 May
-27)
-
-Patch to add more command completions (Dominique Pelle, 2011 Jun 25)
-
-Patch to have GvimExt not use "edit with existing Vim" entries.
-(Jerome Vuarand, 2011 Jun 22)
-
-Patch to make character classes work with multi-byte characters.
-(Dominique Pelle, 2011 May 31, update July 11)
+With "unamedplus" in 'clipboard' pasting in Visual mode causes error for empty
+register. (Michael Seiwald, 2011 Jun 28)  I can't reproduce it.
 
 In GTK Gvim, setting 'lines' and 'columns' to 99999 causes a crash (Tony
 Mechelynck, 2011 Apr 25).  Can reproduce the crash sometimes:
@@ -102,19 +104,9 @@
    backtrace from your debugger if you break on the gdk_x_error() function.)
 Check that number of pixels doesn't go above 65535?
 
-8   Add an event like CursorHold that is triggered repeatedly, not just once
-    after typing something.
-Need for CursorHold that retriggers.  Use a key that doesn't do anything, or a
-function that resets did_cursorhold.
-Patch by Christian Brabandt, 2011 May 6.
-
 popup completion menu closes quickly when there is a fold in the buffer. (Jan
 Christoph Ebersbach, 2011 Jul 3)
 
-CursorHold repeats typed key when it's the start of a mapping.
-(Will Gray, 2011 Mar 23)
-Christian Brabandt: problem is that OP_PENDING isn't set.
-
 Windows keys not set properly on Windows 7?  (cncyber, 2010 Aug 26)
 
 This line hangs Vim, because of syntax HL:
@@ -135,6 +127,8 @@
 
 Vim using lots of memory when joining lines. (John Little, 2010 Dec 3)
 
+Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25)
+
 On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a
 64 bits value.  Change all number options to use nropt_T and define it to the
 right type.
@@ -142,18 +136,17 @@
 string() can't parse back "inf" and "nan".  Fix documentation or fix code?
 (ZyX, 2010 Aug 23)
 
+Make 'formatprg' global-local. (Sung Pae)
+
 When doing "redir => s:foo" in a script and then "redir END" somewhere else
 (e.g. in a function) it can't find s:foo.
 
+7   Make "ga" show the digraph for a character, if it exists.
+Patch from Christian Brabandt, 2011 Aug 19.
+
 maparg() does not show the <script> flag.  When temporarily changing a
 mapping, how to restore the script ID?
 
-Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
-Update Nov 19.  James Vega: still not right.  Christian: it's difficult.
-
-Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
-Also add named groups: \%{name}(re)  and \%{name}g
-
 Bug in try/catch: return with invalid compare throws error that isn't caught.
 (ZyX, 2011 Jan 26)
 
@@ -171,10 +164,6 @@
 
 "0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22)
 
-Deleting a linewise selection that includes the last line of the file leaves
-an empty line. (Ben Schmidt, 2011 Mar 17)
-Patch by Christian Brabandt, 2011 Mar 19.
-
 Patch to support sorting on floating point number.  (Alex Jakushev, 2010 Oct
 30)
 
@@ -194,6 +183,29 @@
 number, but it is in the sign column.  Doesn't look right. (ZyX 2011 Jun 5)
 Patch by Christian Brabandt, 2011 Jun 5.  Introduces new problems.
 
+8   Add a command to jump to the next character highlighted with "Error".
+Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9.
+
+8   Add an event like CursorHold that is triggered repeatedly, not just once
+    after typing something.
+Need for CursorHold that retriggers.  Use a key that doesn't do anything, or a
+function that resets did_cursorhold.
+Patch by Christian Brabandt, 2011 May 6.
+
+7   Use "++--", "+++--" for different levels instead of "+---" "+----".
+Patch by Christian Brabandt, 2011 Jul 27.
+Update by Ben Fritz, with fix for TOhtml. (2011 Jul 30)
+
+9   Add %F to 'errorformat': file name without spaces.  Useful on Unix to
+    avoid matching something up to a time 11:22:33.
+Patch by Christian Brabandt, 2011 Jul 27.
+
+Patch to fix \%V item in regexp. (Christian Brabandt, 2010 Nov 8)
+Update Nov 19.  James Vega: still not right.  Christian: it's difficult.
+
+Patch to add up to 99 match groups. (Christian Brabandt, 2010 Dec 22)
+Also add named groups: \%{name}(re)  and \%{name}g
+
 In the sandbox it's not allowed to do many things, but it's possible to change
 or set variables.  Add a way to prevent variables from being changed in the
 sandbox?  E.g.: ":protect g:restore_settings".
@@ -223,9 +235,6 @@
 "L'Italie" noted as a spell error at start of the sentence. (Dominique Pelle,
 2011 Feb 27)
 
-Patch to fail if configure can't find an interface, such as Python.
-(Shlomi Fish, 2011 Jul 11)
-
 Copy/paste between Vim and Google chrome doesn't work well for multi-byte
 characters. (Ben Haskell, 2010 Sep 17)
 When putting text in the cut buffer (when exiting) and conversion doesn't work
@@ -309,26 +318,20 @@
 
 Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
 
-GvimExt sets $LANG in the wrong way.  Patch by Yasuhiro Matsumoto, 2011 Jun
-15.  This will fix issue no 11.
-
 When writing a file > 2Gbyte, the reported number of bytes is negative.
 (Antonio Colombo, 2010 Dec 18)
 
 Patch: Let rare word highlighting overrule good word highlighting.
 (Jakson A. Aquino, 2010 Jul 30, again 2011 Jul 2)
 
-Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
-
-Patch for VisVim, pass file name to VimOpenFile. (Jiri Sedlak, 2010 Nov 12)
-
 When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
 instead of one. (Constantin Pan, 2010 Sep 10)
 
 Crash in setqflist(). (Benoit Mortgat, 2010 Nov 18)
 
-Patch to handle resizing when tab is opened, when at full size. (Yukihiro
-Nakadaira, 2010 Jan 6)
+Gui menu edit/paste in block mode insert only inserts in one line (Bjorn
+Winckler, 2011 May 11)
+Requires a map mode for Insert mode started from blockwise Visual mode.
 
 Writing nested List and Dict in viminfo gives error message and can't be read
 back. (Yukihiro Nakadaira, 2010 Nov 13)
@@ -426,10 +429,6 @@
 Cannot use getchar() inside :normal and using an expression mapping.  Is this
 supposed to work?  (XyX, 2010 Sep 22)
 
-When using an expression mapping with a multi-byte character each byte is
-converted to a utf-8 character. (ZyX, 2011 Jan 4)
-Patch for possible solution. (Yukihiro Nakadaira, 2011 Jan 5)
-
 When a:base in 'completefunc' starts with a number it's passed as a number,
 not a string. (Sean Ma)  Need to add flag to call_func_retlist() to force a
 string value.
@@ -756,11 +755,6 @@
 This also fails when the file or directory name contains "%". (Thoml, 2008
 July 7)
 
-The str2special() function doesn't handle multi-byte characters properly.
-Patch from Vladimir Vichniakov, 2007 Apr 24.
-Should clean up the whole function.  Also allow modifiers like <S-Char-32>?
-find_special_key() also has this problem.
-
 Problem with 'langmap' being used on the rhs of a mapping. (Nikolai Weibull,
 2008 May 14)
 
@@ -836,8 +830,6 @@
 
 try/catch not working when inside a for loop. (ZyX, 2011 Jan 25)
 
-Recognize and ignore BOM in error file. (Aleksey Baibarin)
-
 ":tab help" always opens a new tab, while ":help" re-uses an existing window.
 Would be more consistent when an existing tab is re-used. (Tony Mechelynck)
 
@@ -871,9 +863,6 @@
 ":ccl" closes the quickfix window.  Add ":hclose". (Chris Gaal)
 Patch for :helpclose, Christian Brabandt, 2010 Sep 6.
 
-Patch for :lmake not updating the quickfix window title. (Lech Lorens, 2011
-Mar 26)
-
 When 'diffopt' has "context:0" a single deleted line causes two folds to merge
 and mess up syncing. (Austin Jennings, 2008 Jan 31)
 
@@ -934,9 +923,6 @@
 size and then redraw the text, skipping the characters under the popup menu.
 This should avoid flicker.  Other solution by A.Politz, 2007 Aug 22.
 
-When the popup menu is close to the edge of the window it is truncated.  Patch
-to anchor the popup menu in a different way. (James Vega, 2008 Jul 30)
-
 Windows 98: pasting from the clipboard with text from another application has
 a trailing NUL.  (Joachim Hofmann)  Perhaps the length specified for CF_TEXT
 isn't right?
@@ -1075,9 +1061,6 @@
 Feature request: Command to go to previous tab, like what CTRL-W p does for
 windows. (Adam George)
 
-When using input() in a loop and then ":echo" the display column isn't right.
-(Benjamin Fritz, 2008 Aug 28)  Patch by Ben Schmidt, 2008 Sep 2.
-
 F1 - F4 in an xterm produce a different escape sequence when used with a
 modifier key.  Need to catch three different sequences.  Use K_ZF1, like
 K_ZHOME? (Dickey, 2007 Dec 2)
@@ -2662,7 +2645,6 @@
 8   Add "z/" and "z?" for searching in not folded text only.
 9   Add search pattern item to only match in closed or open fold and/or fold
     with certain level.  Allows doing ":g/pat/cmd" to work on closed folds.
-7   Use "++--", "+++--" for different levels instead of "+---" "+----".
 8   When a closed fold is displayed open because of 'foldminlines', the
     behavior of commands is still like the fold is closed.  How to make the
     user aware of this?
@@ -2842,7 +2824,6 @@
 8   Highlight the text between two matching parens (e.g., with a grey
     background) when on one of the parens or in between them.
     Option for the matchparen plugin?
-8   Add a command to jump to the next character highlighted with "Error".
 8   When using a cterm, and no ctermfg or ctermbg are defined, use start/stop
     sequences.	Add remark in docs that :if 'term' == "term-name" should be
     used.
@@ -4479,11 +4460,8 @@
 
 
 Digraphs:
-7   Make "ga" show the digraph for a character, if it exists.
-    Also the keymap?
+7   Make "ga" show the keymap for a character, if it exists.
     Also show the code of the character after conversion to 'filenecoding'.
--   Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
-    below/above).
 -   Use digraph table to tell Vim about the collating sequence of special
     characters?
 8   Add command to remove one or more (all) digraphs. (Brown)
@@ -4601,8 +4579,6 @@
 Various improvements:
 9   Python: be able to define a Python function that can be called directly
     from Vim script.  Requires converting the arguments and return value.
-8   ":sign unplace * file={filename}" should work.  Also: ":sign unplace *
-    buffer={bufnr}".  So one can remove all signs for one file/buffer.
 7   Add plugins for formatting?  Should be able to make a choice depending on
     the language of a file (English/Korean/Japanese/etc.).
     Setting the 'langformat' option to "chinese" would load the
@@ -4620,8 +4596,6 @@
 7   Instead of filtering errors with a shell script it should be possible to
     do this with Vim script.  A function that filters the raw text that comes
     from the 'makeprg'?
-9   Add %F to 'errorformat': file name without spaces.  Useful on Unix to
-    avoid matching something up to a time 11:22:33.
 -   Add %b to 'errorformat': buffer number. (Yegappan Lakshmanan / Suresh
     Govindachar)
 7   Add a command that goes back to the position from before jumping to the
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index e9406e6..e9ed1b2 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.3.  Last change: 2010 Dec 19
+*undo.txt*      For Vim version 7.3.  Last change: 2011 Aug 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -35,8 +35,10 @@
 :red[o]			Redo one change which was undone.  {Vi: no redo}
 
 							*U*
-U			Undo all latest changes on one line.  {Vi: while not
-			moved off of it}
+U			Undo all latest changes on one line, the line where
+			the latest change was made. |U| itself also counts as
+			a change, and thus |U| undoes a previous |U|.
+			{Vi: while not moved off of the last modified line}
 
 The last changes are remembered.  You can use the undo and redo commands above
 to revert the text to how it was before each change.  You can also apply the
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 8e1f543..8379667 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.3.  Last change: 2010 Oct 11
+*vi_diff.txt*   For Vim version 7.3.  Last change: 2011 Aug 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -88,8 +88,8 @@
 			   characters
 Maximum lhs of a mapping   50 characters.
 Number of different highlighting types: over 30000
-Range of a Number variable:  -2147483648 to 2147483647 (more on 64 bit
-			   systems)
+Range of a Number variable:  -2147483648 to 2147483647 (might be more on 64
+			   bit systems)
 Maximum length of a line in a tags file: 512 bytes.
 
 Information for undo and text in registers is kept in memory, thus when making
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index ccb9801..31a0e25 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.3.  Last change: 2010 Aug 15
+*windows.txt*   For Vim version 7.3.  Last change: 2011 Aug 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -246,7 +246,7 @@
 
 These command modifiers can be combined to make a vertically split window
 occupy the full height.  Example: >
-	:vertical topleft edit tags
+	:vertical topleft split tags
 Opens a vertically split, full-height window on the "tags" file at the far
 left of the Vim window.
 
