diff --git a/Contents b/Contents
index 01f5f2117f5a6976919d1a2134615b1395bf0224..9c1d4912f6cfd0904abca9f22d9dfdc9e74ed991 100644
--- a/Contents
+++ b/Contents
@@ -9,10 +9,10 @@ Vim		Vi IMproved.  A clone of the UNIX text editor Vi.  Very useful
 		messages, shows current file name in window title, on-line
 		help, rectangular cut/paste, etc., etc., etc...
 
-		Version 7.0c.  Also runs under UNIX, MSDOS and other systems.
-		vim70crt.tgz  contains the documentation and syntax files.
-		vim70cbin.tgz contains the binaries.
-		vim70csrc.tgz contains the sources.
+		Version 7.0d.  Also runs under UNIX, MSDOS and other systems.
+		vim70drt.tgz  contains the documentation and syntax files.
+		vim70dbin.tgz contains the binaries.
+		vim70dsrc.tgz contains the sources.
 		Author: Bram Moolenaar et al.
 
 
diff --git a/Makefile b/Makefile
index 8ac9cc79bf921e2d6b44634783af5e55336086b3..57acddee548fdc042c635692605f02021151201a 100644
--- a/Makefile
+++ b/Makefile
@@ -69,7 +69,7 @@ all install uninstall tools config configure proto depend lint tags types test t
 #    Before creating an archive first delete all backup files, *.orig, etc.
 
 MAJOR = 7
-MINOR = 0c
+MINOR = 0d
 
 # Uncomment this line if the Win32s version is to be included.
 DOSBIN_S =  dosbin_s
@@ -159,6 +159,7 @@ DOSBIN_S =  dosbin_s
 # - The produced uninstalw32.exe and vimrun.exe are used.
 # Create the archives:
 # - Copy all the "*.exe" files to where this Makefile is.
+# - Copy all the "*.pdb" files to the dist directory.
 # - "make dosbin".
 # - Run make on Unix to update the ".mo" files.
 # - "make doslang".
diff --git a/README.txt b/README.txt
index 32a5c6c866fc42bd161d990e87747e8efef5175f..7674299d019623a27fdd2dd6ac5c9486713d3071 100644
--- a/README.txt
+++ b/README.txt
@@ -1,4 +1,4 @@
-README.txt for version 7.0c of Vim: Vi IMproved.
+README.txt for version 7.0d of Vim: Vi IMproved.
 
 
 WHAT IS VIM
diff --git a/README_ami.txt b/README_ami.txt
index 02bef6f9f893a63651b377ee4fba88d797450b7f..235c58034b5527c8593edba910725872c01032c9 100644
--- a/README_ami.txt
+++ b/README_ami.txt
@@ -1,4 +1,4 @@
-README_ami.txt for version 7.0c of Vim: Vi IMproved.
+README_ami.txt for version 7.0d of Vim: Vi IMproved.
 
 This file explains the installation of Vim on Amiga systems.
 See README.txt for general information about Vim.
diff --git a/README_amibin.txt b/README_amibin.txt
index 86d163547b4230309568ff30af79b623485f326d..0472b337823a5d1feb771652c5e01dd06cfffb3d 100644
--- a/README_amibin.txt
+++ b/README_amibin.txt
@@ -1,4 +1,4 @@
-README_amibin.txt for version 7.0c of Vim: Vi IMproved.
+README_amibin.txt for version 7.0d of Vim: Vi IMproved.
 
 See "README.txt" for general information about Vim.
 See "README_ami.txt" for installation instructions for the Amiga.
diff --git a/README_amisrc.txt b/README_amisrc.txt
index 3fc5adb47a4664502774db64a2df384d5d72f6c7..9f04889fabe104ea2071bd6cbd677b7efa06a107 100644
--- a/README_amisrc.txt
+++ b/README_amisrc.txt
@@ -1,4 +1,4 @@
-README_amisrc.txt for version 7.0c of Vim: Vi IMproved.
+README_amisrc.txt for version 7.0d of Vim: Vi IMproved.
 
 See "README.txt" for general information about Vim.
 See "README_ami.txt" for installation instructions for the Amiga.
diff --git a/README_bindos.txt b/README_bindos.txt
index afcfa8aa1d7625717ecb22d25e70b1921f15de98..7cef002a15efd839e639c2594b0d77bac3534f15 100644
--- a/README_bindos.txt
+++ b/README_bindos.txt
@@ -1,4 +1,4 @@
-README_bindos.txt for version 7.0c of Vim: Vi IMproved.
+README_bindos.txt for version 7.0d of Vim: Vi IMproved.
 
 See "README.txt" for general information about Vim.
 See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
diff --git a/README_dos.txt b/README_dos.txt
index 51713c1b10c461d4b9571327cfcc9bd2d64dd080..976fad4461a75175dedf0ebe99148d468c0c90a7 100644
--- a/README_dos.txt
+++ b/README_dos.txt
@@ -1,4 +1,4 @@
-README_dos.txt for version 7.0c of Vim: Vi IMproved.
+README_dos.txt for version 7.0d of Vim: Vi IMproved.
 
 This file explains the installation of Vim on MS-DOS and MS-Windows systems.
 See "README.txt" for general information about Vim.
diff --git a/README_extra.txt b/README_extra.txt
index 0f6d002c1fbcb762ad279ed4fc9402d823f0cb42..8edf54942bdc3df3b7b5e68565542ee272e81a0a 100644
--- a/README_extra.txt
+++ b/README_extra.txt
@@ -1,4 +1,4 @@
-README_extra.txt for version 7.0c of Vim: Vi IMproved.
+README_extra.txt for version 7.0d of Vim: Vi IMproved.
 
 The extra archive of Vim is to be used in combination with the source archive
 (vim-6.0-src.tar.gz).  The extra archive is useless without it.
diff --git a/README_lang.txt b/README_lang.txt
index 86667d8c3d3cda4c17f7bffd1d45f932212d0ac2..7761db9ff8cbfa7f35279a30d99b1098579bba34 100644
--- a/README_lang.txt
+++ b/README_lang.txt
@@ -1,4 +1,4 @@
-README_lang.txt for version 7.0c of Vim: Vi IMproved.
+README_lang.txt for version 7.0d of Vim: Vi IMproved.
 
 This file contains files for non-English languages:
 - Translated messages.
diff --git a/README_mac.txt b/README_mac.txt
index 0445c10ae0c38b9b0c3922f40c2651e89b129334..6d8c2b74288fa10846b85a21874a0bf958322f91 100644
--- a/README_mac.txt
+++ b/README_mac.txt
@@ -1,4 +1,4 @@
-README_mac.txt for version 7.0c of Vim: Vi IMproved.
+README_mac.txt for version 7.0d of Vim: Vi IMproved.
 
 This file explains the installation of Vim on Macintosh systems.
 See "README.txt" for general information about Vim.
diff --git a/README_ole.txt b/README_ole.txt
index 8d6503e1a4a8dd9cd90166bcf29eafc19c54b724..7c33ce75efff4824190048d29a04d21d98a26ddf 100644
--- a/README_ole.txt
+++ b/README_ole.txt
@@ -1,4 +1,4 @@
-README_ole.txt for version 7.0c of Vim: Vi IMproved.
+README_ole.txt for version 7.0d of Vim: Vi IMproved.
 
 This archive contains gvim.exe with OLE interface and VisVim.
 This version of gvim.exe can also load a number of interface dynamically (you
diff --git a/README_os2.txt b/README_os2.txt
index a4f1d68217d031211951b6b91a90db87fb8afee0..8939a306ccc36e7aac1de842b12618873474c50c 100644
--- a/README_os2.txt
+++ b/README_os2.txt
@@ -1,4 +1,4 @@
-README_os2.txt for version 7.0c of Vim: Vi IMproved.
+README_os2.txt for version 7.0d of Vim: Vi IMproved.
 
 This file explains the installation of Vim on OS/2 systems.
 See "README.txt" for general information about Vim.
diff --git a/README_os390.txt b/README_os390.txt
index 254ca0da4fa9fa3f4a8432a16bc7dcd9d32b9671..d689e2ae7719bb957dd5674cf71f83fdd6291e0a 100644
--- a/README_os390.txt
+++ b/README_os390.txt
@@ -1,4 +1,4 @@
-README_os_390.txt for version 7.0c of Vim: Vi IMproved.
+README_os_390.txt for version 7.0d of Vim: Vi IMproved.
 
 Welcome to the OS/390 Unix port of VIM.
 
diff --git a/README_src.txt b/README_src.txt
index c3c7af5b17c8aab9572084699f6319cfaf44efc0..cb59273e8a8e06ab1141113a6ce814fcc1ff9fd4 100644
--- a/README_src.txt
+++ b/README_src.txt
@@ -1,4 +1,4 @@
-README_src.txt for version 7.0c of Vim: Vi IMproved.
+README_src.txt for version 7.0d of Vim: Vi IMproved.
 
 The source archive contains the files needed to compile Vim on Unix systems.
 It is packed for Unix systems (NL line separator).  It is also used for other
diff --git a/README_srcdos.txt b/README_srcdos.txt
index 9f289d1870176525c8be1d5ac5e6d5d93f154e72..b59c8d34d78236b873f54e50804e10ef736d1fb6 100644
--- a/README_srcdos.txt
+++ b/README_srcdos.txt
@@ -1,4 +1,4 @@
-README_srcdos.txt for version 7.0c of Vim: Vi IMproved.
+README_srcdos.txt for version 7.0d of Vim: Vi IMproved.
 
 See "README.txt" for general information about Vim.
 See "README_dos.txt" for installation instructions for MS-DOS and MS-Windows.
diff --git a/README_unix.txt b/README_unix.txt
index 7ba253f509195c03fe254c78aecab66da0a325f1..726ce6a5985c25e41f78edfa19488d42d13e6bec 100644
--- a/README_unix.txt
+++ b/README_unix.txt
@@ -1,4 +1,4 @@
-README_unix.txt for version 7.0c of Vim: Vi IMproved.
+README_unix.txt for version 7.0d of Vim: Vi IMproved.
 
 This file explains the installation of Vim on Unix systems.
 See "README.txt" for general information about Vim.
diff --git a/README_vms.txt b/README_vms.txt
index 6b4167286b861ff6c3336527ec420450d409f4f9..b97e88ebeb16e3d486f683288c3f26b7c60a511c 100644
--- a/README_vms.txt
+++ b/README_vms.txt
@@ -1,4 +1,4 @@
-README_vms.txt for version 7.0c of Vim: Vi IMproved.
+README_vms.txt for version 7.0d of Vim: Vi IMproved.
 
 This file explains the installation of Vim on VMS systems.
 See "README.txt" in the runtime archive for information about Vim.
diff --git a/README_w32s.txt b/README_w32s.txt
index 112c6a2a5f623c4ffb42f33443c07d23d5590968..8aa007eaca8d1e4538a7926a8fd52da80d5d2e73 100644
--- a/README_w32s.txt
+++ b/README_w32s.txt
@@ -1,4 +1,4 @@
-README_w32s.txt for version 7.0c of Vim: Vi IMproved.
+README_w32s.txt for version 7.0d of Vim: Vi IMproved.
 
 This archive contains the gvim.exe that was specifically compiled for use in
 the Win32s subsystem in MS-Windows 3.1 and 3.11.
diff --git a/nsis/gvim.nsi b/nsis/gvim.nsi
index d075dfca7c97baabaa3f1f5ab3f3cd615147bf18..d4e41f4d3ee8c95194726daa4a570eecd9041e18 100644
--- a/nsis/gvim.nsi
+++ b/nsis/gvim.nsi
@@ -22,7 +22,7 @@
 !define HAVE_NLS
 
 !define VER_MAJOR 7
-!define VER_MINOR 0c
+!define VER_MINOR 0d
 
 # ----------- No configurable settings below this line -----------
 
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index ad361b0c541ff563344e44b90bbd9e3ca9376678..2fab11b3980efb989e941fe3d54097ccdfcffaca 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -1,4 +1,4 @@
-*arabic.txt*	For Vim version 7.0c.  Last change: 2005 Mar 29
+*arabic.txt*	For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL	  by Nadim Shaikli
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index d09e95f222198521eea0de58d7814f37497e74f0..c44f6d2ec04f3eaae12776f4395db29d21137e3d 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0c.  Last change: 2006 Apr 07
+*autocmd.txt*   For Vim version 7.0d.  Last change: 2006 Apr 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 4a321758e10b0c2a481e1b5984d36b4e719af096..e8e1caa6a17c7cc4791b0c0acd5c43ccc309a279 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.0c.  Last change: 2006 Apr 09
+*change.txt*    For Vim version 7.0d.  Last change: 2006 Apr 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index a084f3a4606a6c8c35ed2888e75343f8ae36d8e4..060c8a14908b73b53a3158338384c4308bc15f7d 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1,4 +1,4 @@
-*cmdline.txt*   For Vim version 7.0c.  Last change: 2006 Mar 16
+*cmdline.txt*   For Vim version 7.0d.  Last change: 2006 Mar 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index 81bceb91854cc4de8e09ad6f4b5c2de154f41a1f..822b723e0e43ab76ce5a162956657fb63e623a5c 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -1,4 +1,4 @@
-*debug.txt*     For Vim version 7.0c.  Last change: 2005 Dec 17
+*debug.txt*     For Vim version 7.0d.  Last change: 2005 Dec 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index e88289dcd91674f0aa7a0905fd805a365dc9facd..aa2a48bc9bf2723d91284cca480bda07e2fee9e3 100644
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -1,4 +1,4 @@
-*debugger.txt*  For Vim version 7.0c.  Last change: 2005 Mar 29
+*debugger.txt*  For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index dac2dc41ba771c3e7eaf30e890442834bf3f216f..e8b24f9e4ca04a83d732a0191087c28f93088ee1 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 7.0c.  Last change: 2006 Mar 09
+*develop.txt*   For Vim version 7.0d.  Last change: 2006 Mar 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 21b2f3aaca7d30e444a1e4ad01e2f808d7fe7b9f..d3466bfe438b2acf11baa8fb40fc23e23403dae7 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 7.0c.  Last change: 2006 Apr 04
+*diff.txt*      For Vim version 7.0d.  Last change: 2006 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 54cab085fdb87b60d1366091a08e0846c851a1fe..8d390059d3a910c9036a6207d105aa2a35f7d294 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1,4 +1,4 @@
-*digraph.txt*   For Vim version 7.0c.  Last change: 2005 Sep 11
+*digraph.txt*   For Vim version 7.0d.  Last change: 2005 Sep 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 8a9497a211cf9e9ca1a3a7ead133522daa6e52e0..aee6888ad2f663fbae7b0b90488d6efae08bff29 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.0c.  Last change: 2006 Apr 06
+*editing.txt*   For Vim version 7.0d.  Last change: 2006 Apr 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 711de353d75870c53f69a60c3f2c6bf38d0cb870..6b8c469de7cae4f5e8cb8997d24bb74e0467df49 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0c.  Last change: 2006 Apr 09
+*eval.txt*      For Vim version 7.0d.  Last change: 2006 Apr 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index 8fa240a529a6c218a89951f05bf118425d519d92..3b9d906a1163db0f7491c06b95417c482b610d0c 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -1,4 +1,4 @@
-*farsi.txt*     For Vim version 7.0c.  Last change: 2005 Mar 29
+*farsi.txt*     For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Mortaza Ghassab Shiran
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index a0a9479c681746dd58bec277063478c0be5bf3d3..04fda2f499228b14927fc683bcb47000c3d44ce1 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -1,4 +1,4 @@
-*filetype.txt*  For Vim version 7.0c.  Last change: 2006 Mar 24
+*filetype.txt*  For Vim version 7.0d.  Last change: 2006 Mar 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index c52d00dd7117b5085128dcef40a9337086ae44db..fe47750e0a5a7e3b9d28cd9274506e8c2ffbb28c 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -1,4 +1,4 @@
-*fold.txt*      For Vim version 7.0c.  Last change: 2006 Mar 29
+*fold.txt*      For Vim version 7.0d.  Last change: 2006 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/getscript.txt b/runtime/doc/getscript.txt
index 544ff9f8570faf9d53c8f97f9f9a015a90410ce2..98596f391e598e4e064919a479964c6c6b2c5522 100644
--- a/runtime/doc/getscript.txt
+++ b/runtime/doc/getscript.txt
@@ -1,4 +1,4 @@
-*getscript.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*getscript.txt*	For Vim version 7.0d.  Last change: 2006 Mar 24
 
 		Get the Latest VimScripts
 
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index cd25c1956ba8c36c6acdecd6e6741f399f4c4bf6..5f16e28fab5c79d229b69bd442ae125a860f96ff 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1,4 +1,4 @@
-*gui.txt*       For Vim version 7.0c.  Last change: 2006 Apr 02
+*gui.txt*       For Vim version 7.0d.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/gui_w16.txt b/runtime/doc/gui_w16.txt
index 68619398c0931f89fef3b5a3a910218886b2ba04..638e50e5dff89b7d455da7523d971d55648404a6 100644
--- a/runtime/doc/gui_w16.txt
+++ b/runtime/doc/gui_w16.txt
@@ -1,4 +1,4 @@
-*gui_w16.txt*   For Vim version 7.0c.  Last change: 2005 Mar 29
+*gui_w16.txt*   For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index c44d65f329a22b3f066b9b409507395bd4df36e5..7fbbe64c4ff24e65dec20cc4f7752af94ba10095 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -1,4 +1,4 @@
-*gui_w32.txt*   For Vim version 7.0c.  Last change: 2005 Mar 29
+*gui_w32.txt*   For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index cdbbf940257dca232d777528076c8294c73d63c0..d1b5debca7f86b86b5156367656f102c83ebbb32 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -1,4 +1,4 @@
-*gui_x11.txt*   For Vim version 7.0c.  Last change: 2005 Dec 06
+*gui_x11.txt*   For Vim version 7.0d.  Last change: 2005 Dec 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/hangulin.txt b/runtime/doc/hangulin.txt
index 18fdf6055a807eff5265045004a3d89849418db0..dc0a1c963a0c160f4b500115dc9c6b4466fbcb18 100644
--- a/runtime/doc/hangulin.txt
+++ b/runtime/doc/hangulin.txt
@@ -1,4 +1,4 @@
-*hangulin.txt*  For Vim version 7.0c.  Last change: 2006 Apr 02
+*hangulin.txt*  For Vim version 7.0d.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Chi-Deok Hwang and Sung-Hyun Nam
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index 64f7fbb40422dbbc3010fd8e7a7a139891b8725f..4f9051e56f12f2043100c94d2432a80fe45094cb 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -1,4 +1,4 @@
-*hebrew.txt*    For Vim version 7.0c.  Last change: 2003 May 11
+*hebrew.txt*    For Vim version 7.0d.  Last change: 2003 May 11
 
 
 	   VIM REFERENCE MANUAL    by Ron Aaron (and Avner Lottem)
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index f6a9e2b204551a732b87d858075c088e8b9aeac3..b60ef2522ced6270ace71c598dde38c199c5919d 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -1,4 +1,4 @@
-*help.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
+*help.txt*	For Vim version 7.0d.  Last change: 2006 Apr 02
 
 			VIM - main help file
 									 k
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
index f6b81a8a75789b79697f4005df25fc1243ae20cf..58d2dbacdb3752deb21b266f74112279c50fdb21 100644
--- a/runtime/doc/howto.txt
+++ b/runtime/doc/howto.txt
@@ -1,4 +1,4 @@
-*howto.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
+*howto.txt*	For Vim version 7.0d.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index ee41a98a899a8aa682ee4be5f68f7be60f47e004..1f9ac0f86a1537e7b83b1e7ea2090f4010240ec7 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,4 +1,4 @@
-*if_cscop.txt*  For Vim version 7.0c.  Last change: 2005 Mar 29
+*if_cscop.txt*  For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Andy Kahn
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index d577e331067aa997ae7e670a9f9491ebf480672a..9dd2b9782ee0be94f6f4cdd52a256a2da2b9a4e7 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -1,4 +1,4 @@
-*if_mzsch.txt*  For Vim version 7.0c.  Last change: 2006 Mar 06
+*if_mzsch.txt*  For Vim version 7.0d.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Sergey Khorev
diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt
index abe7eb6b0b59bfa04bc20416cb6188ce5cfbddbf..4521a9f2b6d1a014ceaf7540ad63511999e76949 100644
--- a/runtime/doc/if_ole.txt
+++ b/runtime/doc/if_ole.txt
@@ -1,4 +1,4 @@
-*if_ole.txt*    For Vim version 7.0c.  Last change: 2006 Mar 06
+*if_ole.txt*    For Vim version 7.0d.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index b76e06d0b3236b29af2065fd07ee416bdb477102..9937112d27cb222ab50b588acdfa64074b87b6fb 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -1,4 +1,4 @@
-*if_perl.txt*   For Vim version 7.0c.  Last change: 2006 Mar 06
+*if_perl.txt*   For Vim version 7.0d.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Sven Verdoolaege
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 91a02d8194d0c8b754ef4703ecf877d9b16c37db..e3e0191ae54cf8658d8255cdcacdfdf325f66269 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -1,4 +1,4 @@
-*if_pyth.txt*   For Vim version 7.0c.  Last change: 2006 Jan 20
+*if_pyth.txt*   For Vim version 7.0d.  Last change: 2006 Jan 20
 
 
 		  VIM REFERENCE MANUAL    by Paul Moore
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index 1aa72ebf0bac8219147e5eccdd9acca3230c21a9..5097fdf6f7605ad0b813f9904e4b0092d36a3abf 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -1,4 +1,4 @@
-*if_ruby.txt*   For Vim version 7.0c.  Last change: 2006 Mar 26
+*if_ruby.txt*   For Vim version 7.0d.  Last change: 2006 Mar 26
 
 
 		  VIM REFERENCE MANUAL    by Shugo Maeda
diff --git a/runtime/doc/if_sniff.txt b/runtime/doc/if_sniff.txt
index 2e0ca4552b6eeca1e19523fa06a6a9d0643970f8..65b714377cc065620907a3a46ca0e30a4a22f5c4 100644
--- a/runtime/doc/if_sniff.txt
+++ b/runtime/doc/if_sniff.txt
@@ -1,4 +1,4 @@
-*if_sniff.txt*	For Vim version 7.0c.  Last change: 2005 Mar 29
+*if_sniff.txt*	For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL
diff --git a/runtime/doc/if_tcl.txt b/runtime/doc/if_tcl.txt
index 270d3623e9742918c46e639de5acefcb3c1edaca..daa5d4329793fcc29b282b1c12de81bb31698d00 100644
--- a/runtime/doc/if_tcl.txt
+++ b/runtime/doc/if_tcl.txt
@@ -1,4 +1,4 @@
-*if_tcl.txt*    For Vim version 7.0c.  Last change: 2006 Mar 06
+*if_tcl.txt*    For Vim version 7.0d.  Last change: 2006 Mar 06
 
 
 		  VIM REFERENCE MANUAL    by Ingo Wilken
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index d6f4a62e724ad6db623018152a66c8ebf0958938..7f0891d1f8c1933807874266f654b8294b4ac5cd 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1,4 +1,4 @@
-*indent.txt*    For Vim version 7.0c.  Last change: 2006 Mar 29
+*indent.txt*    For Vim version 7.0d.  Last change: 2006 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 215c3c1f9727ed2e72eb30e2e18ba86f6934cf40..491f4cab6acd4003e9c6b54e3b65a7e2b6d21a88 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1,4 +1,4 @@
-*index.txt*     For Vim version 7.0c.  Last change: 2006 Apr 06
+*index.txt*     For Vim version 7.0d.  Last change: 2006 Apr 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 5ffc8a85da8b1b3857bf009006782a042140629f..412771de51300aa37b13afb4e7d6c5adf87a035e 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.0c.  Last change: 2006 Apr 06
+*insert.txt*    For Vim version 7.0d.  Last change: 2006 Apr 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1105,18 +1105,22 @@ The menu is used when:
 The 'pumheight' option can be used to set a maximum height.  The default is to
 use all space available.
 
-There are two states:
-1. A complete match has been inserted.
-2. Only part of a match has been inserted.
+There are three states:
+1. A complete match has been inserted, e.g., after using CTRL-N or CTRL-P.
+2. A cursor key has been used to select another match.  The match was not
+   inserted then, only the entry in the popup menu is highlighted.
+3. Only part of a match has been inserted and characters were typed or the
+   backspace key was used.  The list of matches was then adjusted for what is
+   in front of the cursor.
 
 You normally start in the first state, with the first match being inserted.
 When "longest" is in 'completeopt' and there is more than one match you start
-in the second state.
+in the third state.
 
-If you select another match, e.g., with CTRL-N or CTRL-P, you go from the
-second to the first state.  This doesn't change the list of matches.
+If you select another match, e.g., with CTRL-N or CTRL-P, you go to the first
+state.  This doesn't change the list of matches.
 
-When you are back at the original text then you are in the second state.  To
+When you are back at the original text then you are in the third state.  To
 get there right away you can use a mapping that uses CTRL-P right after
 starting the completion: >
 	:imap <F7> <C-N><C-P>
@@ -1126,8 +1130,11 @@ In the first state these keys have a special meaning:
 <BS> and CTRL-H   Delete one character, find the matches for the word before
 		  the cursor.  This reduces the list of matches, often to one
 		  entry, and switches to the second state.
+Any non-special character:
+		  Stop completion without changing the match and insert the
+		  typed character.
 
-In the second state these keys have a special meaning:
+In the second and third state these keys have a special meaning:
 <BS> and CTRL-H   Delete one character, find the matches for the shorter word
 		  before the cursor.  This may find more matches.
 CTRL-L		  Add one character from the current match, may reduce the
@@ -1135,7 +1142,7 @@ CTRL-L		  Add one character from the current match, may reduce the
 any printable, non-white character:
 		  Add this character and reduce the number of matches.
 
-In both states these can be used:
+In all three states these can be used:
 CTRL-Y		  Yes: Accept the currently selected match and stop completion.
 CTRL-E		  End completion, go back to what was typed.
 <PageUp>	  Select a match several entries back, but don't insert it.
@@ -1144,10 +1151,17 @@ CTRL-E		  End completion, go back to what was typed.
 		  insert it.
 <Down>		  Select the next match, as if CTRL-N was used, but don't
 		  insert it.
-Any other character:
-		  Stop completion without changing the match and insert the
-		  typed character.  Note that typing a space or <Tab> will
-		  work in both states.
+space or <Tab>	  Stop completion without changing the match and insert the
+		  typed character.
+
+The behavior of the Enter key depends on the state you are in:
+first state:	  Use the text as it is and insert a line break.
+second state:	  Insert the currently selected match.
+third state:	  Use the text as it is and insert a line break.
+
+In other words: If you used the cursor keys to select another entry in the
+list of matches then the Enter key inserts that match.  If you typed something
+else then Enter inserts a line break.
 
 
 The colors of the menu can be changed with these highlight groups:
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index d23fe7c5549dc2f72d63b4c52097a8d43a91f503..897033bd0cefd475de167dcc421e77bc46d4a16b 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 7.0c.  Last change: 2006 Apr 09
+*intro.txt*     For Vim version 7.0d.  Last change: 2006 Apr 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 0b3afbe7315993c675d7b986a9f36d66dabb225a..1ee0e40d5ad0d595b6d2df03f42fbc55c4bbe748 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.0c.  Last change: 2006 Mar 20
+*map.txt*       For Vim version 7.0d.  Last change: 2006 Mar 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 3b6934b9b0242f940ae6d6ff05e08bea49fb4c31..9988ae7bb3599f201428253020e2219b8a02c7f3 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1,4 +1,4 @@
-*mbyte.txt*     For Vim version 7.0c.  Last change: 2006 Apr 02
+*mbyte.txt*     For Vim version 7.0d.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar et al.
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 8499bc78c90790e773b4f4aa148349a93cc01a53..129c43eadfa3d46bf3feffd3277b3d58280bc4f2 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt*   For Vim version 7.0c.  Last change: 2006 Mar 01
+*message.txt*   For Vim version 7.0d.  Last change: 2006 Mar 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index 121d77b600ff86edf3955d6d4e0338f09ca75b2f..4854c602741e76953c7803f99cd6db71e66e072b 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -1,4 +1,4 @@
-*mlang.txt*     For Vim version 7.0c.  Last change: 2004 Feb 24
+*mlang.txt*     For Vim version 7.0d.  Last change: 2004 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index d6614004d9b1091dbb0a70bf824a2beee92a1ce0..c9d400d215db05aec3ca937579891dfdc4201c26 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1,4 +1,4 @@
-*motion.txt*    For Vim version 7.0c.  Last change: 2006 Jan 02
+*motion.txt*    For Vim version 7.0d.  Last change: 2006 Jan 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index ca4094266d0fdb088289065ba62db1e17500786f..ecbfdf46deaaa96b98af7442b9537435b01ee91b 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 7.0c.  Last change: 2006 Mar 09
+*netbeans.txt*  For Vim version 7.0d.  Last change: 2006 Mar 09
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 1c5f5def5e3dfa98a2e08e1e8949e7d9afd05c58..7718a584ed8591bee917ca4849ba48fa757d969a 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0c.  Last change: 2006 Apr 09
+*options.txt*	For Vim version 7.0d.  Last change: 2006 Apr 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2079,7 +2079,7 @@ A jump table for the options with a short description can be found at |Q_op|.
 	|hl-CursorLine|.  Useful to easily spot the cursor.  Will make screen
 	redrawing slower.
 	When Visual mode is active the highlighting isn't used to make it
-	easier to spot where the selected area.
+	easier to see the selected text.
 
 
 						*'debug'*
@@ -6361,6 +6361,8 @@ A jump table for the options with a short description can be found at |Q_op|.
 			jumping to errors (":cc", ":cn", "cp", etc.).  It is
 			also used in all buffer related split commands, for
 			example ":sbuffer", ":sbnext", or ":sbrewind".
+	   usetab	Like "useopen", but also consider windows in other tab
+	   		pages.
 	   split	If included, split the current window before loading
 			a buffer.  Otherwise: do not split, use current window.
 			Supported in |quickfix| commands that display errors.
diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt
index c1a0a8f2ac29bcbd0d2fc9c89b4fb6ae5e2e52c2..7f76f818e68d3c967bfa74100f89e22b930b6ac7 100644
--- a/runtime/doc/os_390.txt
+++ b/runtime/doc/os_390.txt
@@ -1,4 +1,4 @@
-*os_390.txt*    For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_390.txt*    For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL	  by Ralf Schandl
diff --git a/runtime/doc/os_amiga.txt b/runtime/doc/os_amiga.txt
index 95dc666d44d60891feb2ab59bbab73da137eed32..cd96f0b63434d4d7acd096cab1b11f2ca81eb9ca 100644
--- a/runtime/doc/os_amiga.txt
+++ b/runtime/doc/os_amiga.txt
@@ -1,4 +1,4 @@
-*os_amiga.txt*  For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_amiga.txt*  For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt
index b28ddc47735443b35227dc720e97eaee933eb5ea..3368b3e03fa7b1335ad66c2f0f5c6d763b5a1b4b 100644
--- a/runtime/doc/os_beos.txt
+++ b/runtime/doc/os_beos.txt
@@ -1,4 +1,4 @@
-*os_beos.txt*	For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_beos.txt*	For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index 7e7711ce527b554c967164e7a8b08056e720096b..5b4dfa9b3f60d8681e7d1643d644072847826979 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -1,4 +1,4 @@
-*os_dos.txt*    For Vim version 7.0c.  Last change: 2006 Mar 30
+*os_dos.txt*    For Vim version 7.0d.  Last change: 2006 Mar 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index 137306be40e765d0a6caa15ffba117243a0e7fd8..02cb0bbbabd17a8aa872ce5d9ca63c32d13ec9b4 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -1,4 +1,4 @@
-*os_mac.txt*    For Vim version 7.0c.  Last change: 2006 Mar 29
+*os_mac.txt*    For Vim version 7.0d.  Last change: 2006 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar et al.
diff --git a/runtime/doc/os_mint.txt b/runtime/doc/os_mint.txt
index f829142138266dbc2a2749807db90402d1ec800e..88195f6657e350a50eafb51dcfb49a3b238963a5 100644
--- a/runtime/doc/os_mint.txt
+++ b/runtime/doc/os_mint.txt
@@ -1,4 +1,4 @@
-*os_mint.txt*   For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_mint.txt*   For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Jens M. Felderhoff
diff --git a/runtime/doc/os_msdos.txt b/runtime/doc/os_msdos.txt
index 5d10d34fbbb6b8a0fe15e3f18c5af8277ad0911b..a67b69c052d1fd1ad457094fd7f2d2b790320332 100644
--- a/runtime/doc/os_msdos.txt
+++ b/runtime/doc/os_msdos.txt
@@ -1,4 +1,4 @@
-*os_msdos.txt*  For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_msdos.txt*  For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt
index 18066e5bf30c70c48d6ab7cce483c1fbee16980e..3408a112fb5abdbb5b9500a8aff4b8b8ba0e718e 100644
--- a/runtime/doc/os_os2.txt
+++ b/runtime/doc/os_os2.txt
@@ -1,4 +1,4 @@
-*os_os2.txt*    For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_os2.txt*    For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Paul Slootman
diff --git a/runtime/doc/os_qnx.txt b/runtime/doc/os_qnx.txt
index ad71fb77316ed2a6c6034693a5c6f27c7f0ea2ae..a577877cc6db176ba46b211e5314941003cd8ac4 100644
--- a/runtime/doc/os_qnx.txt
+++ b/runtime/doc/os_qnx.txt
@@ -1,4 +1,4 @@
-*os_qnx.txt*    For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_qnx.txt*    For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Julian Kinraid
diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt
index 03acb69ed7740d98fb7f7b3c318a4cd18bc6899f..012e80470ccb4af0deee1eb670a5ad163a2c3ac3 100644
--- a/runtime/doc/os_risc.txt
+++ b/runtime/doc/os_risc.txt
@@ -1,4 +1,4 @@
-*os_risc.txt*   For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_risc.txt*   For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Thomas Leonard
diff --git a/runtime/doc/os_unix.txt b/runtime/doc/os_unix.txt
index 4c94130e5776374380b7496955ec582c43a2a701..54cdf23418e56e51e5f68716ecb772f9a80f82c3 100644
--- a/runtime/doc/os_unix.txt
+++ b/runtime/doc/os_unix.txt
@@ -1,4 +1,4 @@
-*os_unix.txt*   For Vim version 7.0c.  Last change: 2005 Mar 29
+*os_unix.txt*   For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 858365225d86751f2c13e466869ef416d3be5698..bfa26df99f840ea8ac679694b30a3dc75a0d2068 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -1,4 +1,4 @@
-*os_vms.txt*    For Vim version 7.0c.  Last change: 2006 Mar 02
+*os_vms.txt*    For Vim version 7.0d.  Last change: 2006 Mar 02
 
 
 		  VIM REFERENCE MANUAL
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index 08611277e31ef2ee4bb1df2bdd328e071bdd5250..92b347fb3a86f851e97086d967102f169396dfa6 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -1,4 +1,4 @@
-*os_win32.txt*  For Vim version 7.0c.  Last change: 2006 Apr 02
+*os_win32.txt*  For Vim version 7.0d.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by George Reilly
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 3bd8c40f8e6db7627a753bb49a5fe98f5ffbaf15..c73d969b63254bfbd17d8ec93e0117212c042638 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -1,4 +1,4 @@
-*pattern.txt*   For Vim version 7.0c.  Last change: 2006 Apr 02
+*pattern.txt*   For Vim version 7.0d.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index b521ee4ad68cb4b067b32aecee4c6fedbda0ea15..40473c2ee7c7664db59441f19bea541bfe85d1ed 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -1,4 +1,4 @@
-*pi_gzip.txt*   For Vim version 7.0c.  Last change: 2002 Oct 29
+*pi_gzip.txt*   For Vim version 7.0d.  Last change: 2002 Oct 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index c577ed58471d2d63173044cf1007cf4ba9e99e47..5ee16fc23acc3e2f48596ce23249464275ef6cf2 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt*  For Vim version 7.0c.  Last change: Apr 06, 2006
+*pi_netrw.txt*  For Vim version 7.0d.  Last change: Apr 06, 2006
 
 		VIM REFERENCE MANUAL    by Charles E. Campbell, Jr.
 
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index a34f354cacb07aff50050da01548c71bc0829265..8ef703cd15261d5c29d0197d999b9d73227df097 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -1,4 +1,4 @@
-*pi_paren.txt*  For Vim version 7.0c.  Last change: 2006 Apr 03
+*pi_paren.txt*  For Vim version 7.0d.  Last change: 2006 Apr 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt
index 1dafd2f562cc139d0ce2f34d2702b3333a607bac..b77d39640affdf8832a1343abc67212085fd32d9 100644
--- a/runtime/doc/pi_spec.txt
+++ b/runtime/doc/pi_spec.txt
@@ -1,4 +1,4 @@
-*pi_spec.txt*   For Vim version 7.0c.  Last change: 2005 Oct 03
+*pi_spec.txt*   For Vim version 7.0d.  Last change: 2005 Oct 03
 
 by Gustavo Niemeyer ~
 
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index 77eb19e10a66accde0ffebc231096a403bcae97b..d21429bfd78326d244a7cfac93b8e5212b409cf0 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -1,4 +1,4 @@
-*tar.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*tar.txt*	For Vim version 7.0d.  Last change: 2006 Mar 24
 
        	       	       +====================+
        	       	       | Tar File Interface |
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index eeb5d767068e8a65e8589289f2b1570a6eda5c45..eca77df2bfcfd1bfd6c4b96d0f771900f279e8b4 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -1,4 +1,4 @@
-*zip.txt*	For Vim version 7.0c.  Last change: 2006 Apr 03
+*zip.txt*	For Vim version 7.0d.  Last change: 2006 Apr 03
 
 				+====================+
 				| Zip File Interface |
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index 09367540559571734791ed67ae75110e39eb956f..3e562165e7e96e87b0f9e9f2f4bfee8ca2fae6b8 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -1,4 +1,4 @@
-*print.txt*     For Vim version 7.0c.  Last change: 2005 Apr 01
+*print.txt*     For Vim version 7.0d.  Last change: 2005 Apr 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 504d584d0a0913ce0488368470ffcd65589b874b..d6206f8729b1684e09d45c1fe1008ab2b640c6c8 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.0c.  Last change: 2006 Mar 24
+*quickfix.txt*  For Vim version 7.0d.  Last change: 2006 Mar 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 4008e3acf8b62f34ab67c2f4c78bf1d064931c93..ce2c113cd49f0b8f7451b2c46313fbb996020926 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -1,4 +1,4 @@
-*quickref.txt*  For Vim version 7.0c.  Last change: 2006 Mar 23
+*quickref.txt*  For Vim version 7.0d.  Last change: 2006 Mar 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/quotes.txt b/runtime/doc/quotes.txt
index b2322ef1d03916e92e2a775a4fdd2fba32863f0c..b7d7d43fccff4d0a589efdc9633169533a69ae01 100644
--- a/runtime/doc/quotes.txt
+++ b/runtime/doc/quotes.txt
@@ -1,4 +1,4 @@
-*quotes.txt*    For Vim version 7.0c.  Last change: 2005 Apr 04
+*quotes.txt*    For Vim version 7.0d.  Last change: 2005 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index 4849077d6fb3ed5f621d41328d3c47727c4d0569..0908a55f2f9f444b5a9b736379813f03a270f0e2 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -1,4 +1,4 @@
-*recover.txt*   For Vim version 7.0c.  Last change: 2005 Dec 12
+*recover.txt*   For Vim version 7.0d.  Last change: 2005 Dec 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index a65ef930b8a134d768dd0685cd36c2e7296d34ac..4dfdcc49a6e8e09bc4d98a952d6b0d7294eb7532 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -1,4 +1,4 @@
-*remote.txt*    For Vim version 7.0c.  Last change: 2006 Mar 11
+*remote.txt*    For Vim version 7.0d.  Last change: 2006 Mar 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 48afafbfa7dc1fb80531fe2f9e5910a51248bb77..19c8cac6b1d09f346d8088fc676e2e8944253b73 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -1,4 +1,4 @@
-*repeat.txt*    For Vim version 7.0c.  Last change: 2006 Mar 21
+*repeat.txt*    For Vim version 7.0d.  Last change: 2006 Mar 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index e9401e8ab2a21b428ce45c19e5b6ab4071d27729..fa704faa9c96e5693a3d2fe326f3c00c0bafd105 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -1,4 +1,4 @@
-*rileft.txt*    For Vim version 7.0c.  Last change: 2005 Apr 04
+*rileft.txt*    For Vim version 7.0d.  Last change: 2005 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Avner Lottem
diff --git a/runtime/doc/russian.txt b/runtime/doc/russian.txt
index 2423a7cf4bb07dffaa3350586ee805e2b983ee10..b511825d483fe947bcd855c37f252bd3b3a1d476 100644
--- a/runtime/doc/russian.txt
+++ b/runtime/doc/russian.txt
@@ -1,4 +1,4 @@
-*russian.txt*   For Vim version 7.0c.  Last change: 2005 Apr 01
+*russian.txt*   For Vim version 7.0d.  Last change: 2005 Apr 01
 
 
 		  VIM REFERENCE MANUAL    by Vassily Ragosin
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index 7e4a3a88823d1213cd4a258dfcdf3b51e675ea75..19a8f2708dcf32248b8fc92956a0bb7ecbf500b4 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -1,4 +1,4 @@
-*scroll.txt*    For Vim version 7.0c.  Last change: 2005 Dec 16
+*scroll.txt*    For Vim version 7.0d.  Last change: 2005 Dec 16
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index 594020cb853c9313167a07c4759d7729cc1daa06..aec354a2e235a2b094b7ceefdcfeb1a9cd72fc75 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -1,4 +1,4 @@
-*sign.txt*      For Vim version 7.0c.  Last change: 2005 Apr 04
+*sign.txt*      For Vim version 7.0d.  Last change: 2005 Apr 04
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index ebfecbcc3bf7925fcb0fc085c94c6d6871449733..80933c08ec07a99780cba8b91cfe0d1a39d56451 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.0c.  Last change: 2006 Apr 06
+*spell.txt*	For Vim version 7.0d.  Last change: 2006 Apr 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index f8273a542276552bacd82646afcd600c2504b8c2..de9b421f3c4ba1e9ce37d762d675083908df5225 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -1,4 +1,4 @@
-*sponsor.txt*   For Vim version 7.0c.  Last change: 2006 Mar 29
+*sponsor.txt*   For Vim version 7.0d.  Last change: 2006 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/sql.txt b/runtime/doc/sql.txt
index 29a0bce1a666e331dd81d2a3a561177ff6ea3009..ce7079db34cd2de3a733783a36a25dbaaac550b5 100644
--- a/runtime/doc/sql.txt
+++ b/runtime/doc/sql.txt
@@ -1,4 +1,4 @@
-*sql.txt*   	For Vim version 7.0c.  Last change: Mon Apr 03 2006 10:34:00 PM
+*sql.txt*   	For Vim version 7.0d.  Last change: Mon Apr 03 2006 10:34:00 PM
 
 by David Fishburn
 
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 4ca2139a81277219293f8f67459f90ccd3298ceb..64c2c0ea9931e3f36f13385898dd1f171bb3e359 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.0c.  Last change: 2006 Apr 02
+*starting.txt*  For Vim version 7.0d.  Last change: 2006 Apr 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 13a53973f1360ba35336ce7d983b0f1ee0842eaf..a085860b661a03b533c74b16350d707b94af9952 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0c.  Last change: 2006 Apr 06
+*syntax.txt*	For Vim version 7.0d.  Last change: 2006 Apr 06
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 55f12d9cc113decd11590487672f68151c1dabd5..43b05b32472a483a82043a04f0f0715a639f048e 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -1,4 +1,4 @@
-*tabpage.txt*   For Vim version 7.0c.  Last change: 2006 Apr 09
+*tabpage.txt*   For Vim version 7.0d.  Last change: 2006 Apr 09
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 56a603cf3d58ced79d454606c3c5c9ca011a1bdd..6e3e49b00f030b3372c8090a419bcca5d35196b4 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -1,4 +1,4 @@
-*tagsrch.txt*   For Vim version 7.0c.  Last change: 2006 Feb 24
+*tagsrch.txt*   For Vim version 7.0d.  Last change: 2006 Feb 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index 22de084b514c8a526f116acdffd7aaf37b1a09e6..133518ad33b25b15f3ea08fcc1f4f1d453ab52cd 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -1,4 +1,4 @@
-*term.txt*      For Vim version 7.0c.  Last change: 2006 Feb 14
+*term.txt*      For Vim version 7.0d.  Last change: 2006 Feb 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 3aa33c3526784ede22968e4e26754fd7cbd8abc2..575cbf6d2fb64cd90a818aef47b11c92d1c9cf17 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -1,4 +1,4 @@
-*tips.txt*      For Vim version 7.0c.  Last change: 2006 Mar 01
+*tips.txt*      For Vim version 7.0d.  Last change: 2006 Mar 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 8ddf52fa0ee2bcf198f6ef892c020e6c03c615ca..979988fec686a9372be60d755e5b6b0d0fd420d4 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0c.  Last change: 2006 Apr 09
+*todo.txt*      For Vim version 7.0d.  Last change: 2006 Apr 10
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,11 +30,11 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+":mkspell" still takes much too long in Hungarian dictionary.
+
 Handle postponed prefix with COMPOUNDPERMITFLAG or COMPOUNDFORBIDFLAG.
     WFP_COMPPERMIT and WFP_COMPFORBID
 
-":mkspell" still takes much too long in Hungarian dictionary.
-
 Use ~/tmp/hungarian*.txt to test dictionary with.
 
 New Hungarian dictionary. (Laci Nemeth)
@@ -47,9 +47,6 @@ New Hungarian dictionary. (Laci Nemeth)
     How is it supposed to work?
 -   implement using CHECKCOMPOUNDPATTERN: match words with sl_comppat[].
 
-Obey 'switchbuf' "useopen" value for windows in other tabs, e.g. for :sbuffer.
-Or use another value, e.g., "usetab"?
-
 Add more tests for all new functionality in Vim 7.  Especially new functions.
 
 Win32: Describe how to do debugging. (George Reilly)
diff --git a/runtime/doc/uganda.nsis.txt b/runtime/doc/uganda.nsis.txt
deleted file mode 100644
index d839ae2d24ec29f59843a5532c5d673a884db22c..0000000000000000000000000000000000000000
--- a/runtime/doc/uganda.nsis.txt
+++ /dev/null
@@ -1,292 +0,0 @@
-    For Vim version 7.0c.  Last change: 2006 Mar 24
-
-		  VIM REFERENCE MANUAL    by Bram Moolenaar
-
-SUMMARY
-
-Vim is Charityware.  You can use and copy it as much as you like, but you are
-encouraged to make a donation for needy children in Uganda.  Please see |kcc|
-below or visit the ICCF web site, available at these URLs:
-
-	http://iccf-holland.org/
-	http://www.vim.org/iccf/
-
-You can also sponsor the development of Vim.  Vim sponsors can vote for
-features.  See |sponsor|.  The money goes to Uganda anyway.
-
-The Open Publication License applies to the Vim documentation, see
-|manual-copyright|.
-
-=== begin of license ===
-
-VIM LICENSE
-
-I)  There are no restrictions on distributing unmodified copies of Vim except
-    that they must include this license text.  You can also distribute
-    unmodified parts of Vim, likewise unrestricted except that they must
-    include this license text.  You are also allowed to include executables
-    that you made from the unmodified Vim sources, plus your own usage
-    examples and Vim scripts.
-
-II) It is allowed to distribute a modified (or extended) version of Vim,
-    including executables and/or source code, when the following four
-    conditions are met:
-    1) This license text must be included unmodified.
-    2) The modified Vim must be distributed in one of the following five ways:
-       a) If you make changes to Vim yourself, you must clearly describe in
-	  the distribution how to contact you.  When the maintainer asks you
-	  (in any way) for a copy of the modified Vim you distributed, you
-	  must make your changes, including source code, available to the
-	  maintainer without fee.  The maintainer reserves the right to
-	  include your changes in the official version of Vim.  What the
-	  maintainer will do with your changes and under what license they
-	  will be distributed is negotiable.  If there has been no negotiation
-	  then this license, or a later version, also applies to your changes.
-	  The current maintainer is Bram Moolenaar <Bram@vim.org>.  If this
-	  changes it will be announced in appropriate places (most likely
-	  vim.sf.net, www.vim.org and/or comp.editors).  When it is completely
-	  impossible to contact the maintainer, the obligation to send him
-	  your changes ceases.  Once the maintainer has confirmed that he has
-	  received your changes they will not have to be sent again.
-       b) If you have received a modified Vim that was distributed as
-	  mentioned under a) you are allowed to further distribute it
-	  unmodified, as mentioned at I).  If you make additional changes the
-	  text under a) applies to those changes.
-       c) Provide all the changes, including source code, with every copy of
-	  the modified Vim you distribute.  This may be done in the form of a
-	  context diff.  You can choose what license to use for new code you
-	  add.  The changes and their license must not restrict others from
-	  making their own changes to the official version of Vim.
-       d) When you have a modified Vim which includes changes as mentioned
-	  under c), you can distribute it without the source code for the
-	  changes if the following three conditions are met:
-	  - The license that applies to the changes permits you to distribute
-	    the changes to the Vim maintainer without fee or restriction, and
-	    permits the Vim maintainer to include the changes in the official
-	    version of Vim without fee or restriction.
-	  - You keep the changes for at least three years after last
-	    distributing the corresponding modified Vim.  When the maintainer
-	    or someone who you distributed the modified Vim to asks you (in
-	    any way) for the changes within this period, you must make them
-	    available to him.
-	  - You clearly describe in the distribution how to contact you.  This
-	    contact information must remain valid for at least three years
-	    after last distributing the corresponding modified Vim, or as long
-	    as possible.
-       e) When the GNU General Public License (GPL) applies to the changes,
-	  you can distribute the modified Vim under the GNU GPL version 2 or
-	  any later version.
-    3) A message must be added, at least in the output of the ":version"
-       command and in the intro screen, such that the user of the modified Vim
-       is able to see that it was modified.  When distributing as mentioned
-       under 2)e) adding the message is only required for as far as this does
-       not conflict with the license used for the changes.
-    4) The contact information as required under 2)a) and 2)d) must not be
-       removed or changed, except that the person himself can make
-       corrections.
-
-III) If you distribute a modified version of Vim, you are encouraged to use
-     the Vim license for your changes and make them available to the
-     maintainer, including the source code.  The preferred way to do this is
-     by e-mail or by uploading the files to a server and e-mailing the URL.
-     If the number of changes is small (e.g., a modified Makefile) e-mailing a
-     context diff will do.  The e-mail address to be used is
-     <maintainer@vim.org>
-
-IV)  It is not allowed to remove this license from the distribution of the Vim
-     sources, parts of it or from a modified version.  You may use this
-     license for previous Vim releases instead of the license that they came
-     with, at your option.
-
-=== end of license ===
-
-Note:
-
-- If you are happy with Vim, please express that by reading the rest of this
-  file and consider helping needy children in Uganda.
-
-- If you want to support further Vim development consider becoming a
-  |sponsor|.  The money goes to Uganda anyway.
-
-- According to Richard Stallman the Vim license is GNU GPL compatible.
-  A few minor changes have been made since he checked it, but that should not
-  make a difference.
-
-- If you link Vim with a library that goes under the GNU GPL, this limits
-  further distribution to the GNU GPL.  Also when you didn't actually change
-  anything in Vim.
-
-- Once a change is included that goes under the GNU GPL, this forces all
-  further changes to also be made under the GNU GPL or a compatible license.
-
-- If you distribute a modified version of Vim, you can include your name and
-  contact information with the "--with-modified-by" configure argument or the
-  MODIFIED_BY define.
-
-==============================================================================
-Kibaale Children's Centre
-
-Kibaale Children's Centre (KCC) is located in Kibaale, a small town in the
-south of Uganda, near Tanzania, in East Africa.  The area is known as Rakai
-District.  The population is mostly farmers.  Although people are poor, there
-is enough food.  But this district is suffering from AIDS more than any other
-part of the world.  Some say that it started there.  Estimations are that 10
-to 30% of the Ugandans are infected with HIV.  Because parents die, there are
-many orphans.  In this district about 60,000 children have lost one or both
-parents, out of a population of 350,000.  And this is still continuing.
-
-The children need a lot of help.  The KCC is working hard to provide the needy
-with food, medical care and education.  Food and medical care to keep them
-healthy now, and education so that they can take care of themselves in the
-future.  KCC works on a Christian base, but help is given to children of any
-religion.
-
-The key to solving the problems in this area is education.  This has been
-neglected in the past years with president Idi Amin and the following civil
-wars.  Now that the government is stable again, the children and parents have
-to learn how to take care of themselves and how to avoid infections.  There is
-also help for people who are ill and hungry, but the primary goal is to
-prevent people from getting ill and to teach them how to grow healthy food.
-
-Most of the orphans are living in an extended family.  An uncle or older
-sister is taking care of them.  Because these families are big and the income
-(if any) is low, a child is lucky if it gets healthy food.  Clothes, medical
-care and schooling is beyond its reach.  To help these needy children, a
-sponsorship program was put into place.  A child can be financially adopted.
-For a few dollars a month KCC sees to it that the child gets indispensable
-items, is healthy, goes to school and KCC takes care of anything else that
-needs to be done for the child and the family that supports it.
-
-Besides helping the child directly, the environment where the child grows up
-needs to be improved.  KCC helps schools to improve their teaching methods.
-There is a demonstration school at the centre and teacher trainings are given.
-Health workers are being trained, hygiene education is carried out and
-households are stimulated to build a proper latrine.  I helped setting up a
-production site for cement slabs.  These are used to build a good latrine.
-They are sold below cost price.
-
-There is a small clinic at the project, which provides children and their
-family with medical help.  When needed, transport to a hospital is offered.
-Immunization programs are carried out and help is provided when an epidemic is
-breaking out (measles and cholera have been a problem).
-
-Summer 1994 to summer 1995 I spent a whole year at the centre, working as a
-volunteer.  I have helped to expand the centre and worked in the area of water
-and sanitation.  I learned that the help that the KCC provides really helps.
-Now that I'm back in Holland, I would like to continue supporting KCC.  To do
-this I'm raising funds and organizing the sponsorship program.  Please
-consider one of these possibilities:
-
-1.  Sponsor a child in primary school: 17 euro a month (or more).
-2.  Sponsor a child in secondary school: 25 euro a month (or more).
-3.  Sponsor the clinic: Any amount a month or quarter
-4.  A one-time donation
-
-Compared with other organizations that do child sponsorship the amounts are
-very low.  This is because the money goes directly to the centre.  Less than
-5% is used for administration.  This is possible because this is a small
-organization that works with volunteers.  If you would like to sponsor a
-child, you should have the intention to do this for at least one year.
-
-How do you know that the money will be spent right?  First of all you have my
-personal guarantee as the author of Vim.  I trust the people that are working
-at the centre, I know them personally.  Further more, the centre is
-co-sponsored and inspected by World Vision, Save the Children Fund and
-International Child Care Fund.  The centre is visited about once a year to
-check the progress (at our own cost).  I have visited the centre myself in
-1996, 1998, 2000, 2001 and 2003.  The visit reports are on the ICCF web site.
-
-If you have any further questions, send me e-mail: <Bram@vim.org>.
-
-The address of the centre is:
-			Kibaale Children's Centre
-			p.o. box 1658
-			Masaka, Uganda, East Africa
-
-Sending money:
-
-Check the ICCF web site for the latest information!  See |iccf| for the URL.
-
-USA:		The methods mentioned below can be used.  Alternatively, you
-		can send a check to the Nehemiah Group Outreach Society
-		(NGOS).  This will reduce banking costs and you can get an IRS
-		tax receipt.  The NGOS forwards the funds directly to the
-		Kibaale project in Uganda.  Checks must be made payable to
-		NGOS but please note on the check "donation Kibaale".  Mail
-		checks to:
-			NGOS
-			P.O. Box 50862
-			Indianapolis, IN 45250
-		Questions regarding the Nehemiah Group Outreach Society (NGOS)
-		should be directed to: Ross deMerchant, Executive Director -
-		r.demerchant AT sbcglobal DOT net.
-		For sponsoring a child contact KCF in Canada (see below) and
-		send the check to NGOS in Indianapolis.
-
-Canada:		Contact Kibaale Children's Fund (KCF) in Surrey, Canada.  They
-		take care of the Canadian sponsors for the children in
-		Kibaale.  KCF forwards 100% of the money to the project in
-		Uganda.  You can send them a one time donation directly.
-		Please send me a note so that I know what has been donated
-		because of Vim.  Ask KCF for information about sponsorship.
-			Kibaale Children's Fund c/o Pacific Academy
-			10238-168 Street
-			Surrey, B.C. V4N 1Z4
-			Canada
-			Phone: 604-581-5353
-		If you make a donation to Kibaale Children's Fund (KCF) you
-		will receive a tax receipt which can be submitted with your
-		tax return.
-
-Holland:	Transfer to the account of "Stichting ICCF Holland" in Venlo.
-		This will allow for tax deduction if you live in Holland.
-			Postbank, nr. 4548774
-
-Germany:	It is possible to make donations that allow for a tax return.
-		Check the ICCF web site for the latest information:
-			http://iccf-holland.org/germany.html
-
-World:		Use a postal money order.  That should be possible from any
-		country, mostly from the post office.  Use this name (which is
-		in my passport): "Abraham Moolenaar".  Use Euro for the
-		currency if possible.
-
-Europe:		Use a bank transfer if possible.  Your bank should have a form
-		that you can use for this.  See "Others" below for the swift
-		code and IBAN number.
-		Any other method should work.  Ask for information about
-		sponsorship.
-
-Credit Card:	You can use PayPal to send money with a Credit card.  This is
-		the most widely used Internet based payment system.  It's
-		really simple to use.  Use this link to find more info:
-		    https://www.paypal.com/affil/pal=Bram%40iccf-holland.org
-		The e-mail address for sending the money to is:
-		    Bram@iccf-holland.org
-		For amounts above 400 Euro ($500) sending a check is
-		preferred.
-
-Others:		Transfer to one of these accounts if possible:
-		    Postbank, account 4548774
-				Swift code: INGB NL 2A
-				IBAN: NL47 PSTB 0004 5487 74
-			under the name "stichting ICCF Holland", Venlo
-		    If that doesn't work:
-		    Rabobank Venlo, account 3765.05.117
-				Swift code: RABO NL 2U
-			under the name "Bram Moolenaar", Venlo
-		Otherwise, send a check in euro or US dollars to the address
-		below.  Minimal amount: $70 (my bank does not accept smaller
-		amounts for foreign check, sorry)
-
-Address to send checks to:
-			stichting ICCF Holland
-			Bram Moolenaar
-			Molenstraat 2
-			2161 HP Lisse
-			The Netherlands
-
-This address is expected to be valid for a long time.  The address in Venlo
-will not be valid after June 2006.
-
- ts=8:ft=help:norl:
diff --git a/runtime/doc/uganda.txt b/runtime/doc/uganda.txt
index a38950a890f03f02084486ce8311d505ee1e38fb..fc412c885836a3117aca235118310e35f8d5b3ff 100644
--- a/runtime/doc/uganda.txt
+++ b/runtime/doc/uganda.txt
@@ -1,4 +1,4 @@
-*uganda.txt*    For Vim version 7.0c.  Last change: 2006 Mar 24
+*uganda.txt*    For Vim version 7.0d.  Last change: 2006 Mar 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index 8f6132e2ef99707a1f9073e3339917e0f0619643..d94de2b47910b0a0a36a5ba91194aabe60400d5f 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.0c.  Last change: 2006 Mar 24
+*undo.txt*      For Vim version 7.0d.  Last change: 2006 Mar 24
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/usr_01.txt b/runtime/doc/usr_01.txt
index dd364af2fed70b7420449e85b5e73b48728e4792..c162318ce2170553d1f35eafb54b5bcff21d0de0 100644
--- a/runtime/doc/usr_01.txt
+++ b/runtime/doc/usr_01.txt
@@ -1,4 +1,4 @@
-*usr_01.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_01.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_02.txt b/runtime/doc/usr_02.txt
index 03a04a8f5692adab8511560fa4440395dbed9c8e..522947e8a4fb968e62dada2183abe60e80d6b392 100644
--- a/runtime/doc/usr_02.txt
+++ b/runtime/doc/usr_02.txt
@@ -1,4 +1,4 @@
-*usr_02.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*usr_02.txt*	For Vim version 7.0d.  Last change: 2006 Mar 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_03.txt b/runtime/doc/usr_03.txt
index 035465686f475fc7b5106b828ebda8808fc25589..759f0e8a447f611b891f8ae2bc7c0fbb1a79a7c5 100644
--- a/runtime/doc/usr_03.txt
+++ b/runtime/doc/usr_03.txt
@@ -1,4 +1,4 @@
-*usr_03.txt*	For Vim version 7.0c.  Last change: 2005 Apr 22
+*usr_03.txt*	For Vim version 7.0d.  Last change: 2005 Apr 22
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt
index 17404775584ad06132a825db6593cfa1f7ea144e..035592b845b9a169e0fab5c528f4d3840c6df673 100644
--- a/runtime/doc/usr_04.txt
+++ b/runtime/doc/usr_04.txt
@@ -1,4 +1,4 @@
-*usr_04.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_04.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index 0906dc7e322c05242c575923e866ee5c0c5cf521..c2f60bd7cc1aca63ae3c143fcbd79b283b23658b 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -1,4 +1,4 @@
-*usr_05.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
+*usr_05.txt*	For Vim version 7.0d.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_06.txt b/runtime/doc/usr_06.txt
index b9567c92051264710a156eb5ef6a4d60c5b8e759..50920c45f3d9b96d3136e91ca7a78a68d01c608d 100644
--- a/runtime/doc/usr_06.txt
+++ b/runtime/doc/usr_06.txt
@@ -1,4 +1,4 @@
-*usr_06.txt*	For Vim version 7.0c.  Last change: 2006 Feb 16
+*usr_06.txt*	For Vim version 7.0d.  Last change: 2006 Feb 16
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_07.txt b/runtime/doc/usr_07.txt
index a53db0966d8540f846a09784431d94978402cdd2..630e7217cc25dc51055a7b20054ef09320c4ccb1 100644
--- a/runtime/doc/usr_07.txt
+++ b/runtime/doc/usr_07.txt
@@ -1,4 +1,4 @@
-*usr_07.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_07.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_08.txt b/runtime/doc/usr_08.txt
index 125d70f79b52aab80f13d5691b0cd8f488d54b39..fb212c65f56cbae071bb3659c70a8faa67f285a4 100644
--- a/runtime/doc/usr_08.txt
+++ b/runtime/doc/usr_08.txt
@@ -1,4 +1,4 @@
-*usr_08.txt*	For Vim version 7.0c.  Last change: 2006 Feb 25
+*usr_08.txt*	For Vim version 7.0d.  Last change: 2006 Feb 25
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt
index 00295efbe5a44fccceea04bf2095d856d92d2530..f999da541774e5e675077ed7d3920e61cd7d8116 100644
--- a/runtime/doc/usr_09.txt
+++ b/runtime/doc/usr_09.txt
@@ -1,4 +1,4 @@
-*usr_09.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_09.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_10.txt b/runtime/doc/usr_10.txt
index 3d9fc277dbcc2b16e6cf27f441b6d81ab9a8ce6a..425ee755ef6703eccc54991a0ddad82f44b7c453 100644
--- a/runtime/doc/usr_10.txt
+++ b/runtime/doc/usr_10.txt
@@ -1,4 +1,4 @@
-*usr_10.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_10.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index e5a4d0d22d6b2b0a4fdde277e6e18d8a6f044f34..128198f09c6991cf8b05502be0f95c59b27609c6 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt*	For Vim version 7.0c.  Last change: 2005 Jun 09
+*usr_11.txt*	For Vim version 7.0d.  Last change: 2005 Jun 09
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_12.txt b/runtime/doc/usr_12.txt
index 94d2a37de19c19d53c0e2db1d4505feb1cb17e4a..7ebb481caff909b632fb57110ee1255f8e292102 100644
--- a/runtime/doc/usr_12.txt
+++ b/runtime/doc/usr_12.txt
@@ -1,4 +1,4 @@
-*usr_12.txt*	For Vim version 7.0c.  Last change: 2006 Feb 26
+*usr_12.txt*	For Vim version 7.0d.  Last change: 2006 Feb 26
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_20.txt b/runtime/doc/usr_20.txt
index f8cfdbfe844fd7f417376e5cecf39a882308ee75..08429e0a140ba7d112df9b2e0b4384f1a19fb0e9 100644
--- a/runtime/doc/usr_20.txt
+++ b/runtime/doc/usr_20.txt
@@ -1,4 +1,4 @@
-*usr_20.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_20.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_21.txt b/runtime/doc/usr_21.txt
index 0f418c774792af74cdb5b25071897960f905cd15..85d813ff764dd37d34ac1b241b5a5547d13df82b 100644
--- a/runtime/doc/usr_21.txt
+++ b/runtime/doc/usr_21.txt
@@ -1,4 +1,4 @@
-*usr_21.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_21.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt
index b6fdf721a63c51d4057c8e87aad056fb61c2dae0..4365be1969fe271208539761a330866fae557c10 100644
--- a/runtime/doc/usr_22.txt
+++ b/runtime/doc/usr_22.txt
@@ -1,4 +1,4 @@
-*usr_22.txt*	For Vim version 7.0c.  Last change: 2005 Apr 10
+*usr_22.txt*	For Vim version 7.0d.  Last change: 2005 Apr 10
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_23.txt b/runtime/doc/usr_23.txt
index 1a5b8aab352bf05b4afc34835788b05d12fbf44a..3f4a25a264fe8bcf3eb27ef306acb894b813eb66 100644
--- a/runtime/doc/usr_23.txt
+++ b/runtime/doc/usr_23.txt
@@ -1,4 +1,4 @@
-*usr_23.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_23.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_24.txt b/runtime/doc/usr_24.txt
index 8521d5963fd526f631572a78f2e7d39af657655e..50a370707c950a5fa414622a628f3da37a4d2274 100644
--- a/runtime/doc/usr_24.txt
+++ b/runtime/doc/usr_24.txt
@@ -1,4 +1,4 @@
-*usr_24.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
+*usr_24.txt*	For Vim version 7.0d.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_25.txt b/runtime/doc/usr_25.txt
index eef28be432a278d5561414f0f4184e5fb304a122..1264c1ed6f42312120496cb0ab8b1684765675d7 100644
--- a/runtime/doc/usr_25.txt
+++ b/runtime/doc/usr_25.txt
@@ -1,4 +1,4 @@
-*usr_25.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_25.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_26.txt b/runtime/doc/usr_26.txt
index 7a88e0b91f6fb234fc4e6ce006bfdf1ea4ed5f2d..862a4535599b5c2561909e2355ddfc268f904159 100644
--- a/runtime/doc/usr_26.txt
+++ b/runtime/doc/usr_26.txt
@@ -1,4 +1,4 @@
-*usr_26.txt*	For Vim version 7.0c.  Last change: 2002 Oct 29
+*usr_26.txt*	For Vim version 7.0d.  Last change: 2002 Oct 29
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt
index a8cb9c0923a11b6e7ade19e1b9f9b9d44f3e9636..e4b76a4538559abe7b3d4a4f647090bc6a010773 100644
--- a/runtime/doc/usr_27.txt
+++ b/runtime/doc/usr_27.txt
@@ -1,4 +1,4 @@
-*usr_27.txt*	For Vim version 7.0c.  Last change: 2005 Feb 08
+*usr_27.txt*	For Vim version 7.0d.  Last change: 2005 Feb 08
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_28.txt b/runtime/doc/usr_28.txt
index 73dd7b3bb3972f99d6cf48169cfe5fc0948853cb..f0b409f46e776a2780d735b1311bc0c1e4e0a751 100644
--- a/runtime/doc/usr_28.txt
+++ b/runtime/doc/usr_28.txt
@@ -1,4 +1,4 @@
-*usr_28.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_28.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_29.txt b/runtime/doc/usr_29.txt
index e3852894eadcef7c4f90454f183364d00041c65b..324616457dcb051b807c59baed52b354dd0dca4c 100644
--- a/runtime/doc/usr_29.txt
+++ b/runtime/doc/usr_29.txt
@@ -1,4 +1,4 @@
-*usr_29.txt*	For Vim version 7.0c.  Last change: 2004 Feb 12
+*usr_29.txt*	For Vim version 7.0d.  Last change: 2004 Feb 12
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_30.txt b/runtime/doc/usr_30.txt
index 925a32f2daba79468b17453c16fe4cc561cb79bb..aa445f76ab68ce4cb5c7256880de4541fdd2ed69 100644
--- a/runtime/doc/usr_30.txt
+++ b/runtime/doc/usr_30.txt
@@ -1,4 +1,4 @@
-*usr_30.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_30.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_31.txt b/runtime/doc/usr_31.txt
index 86de40d6c51a18746f92f511b1ef0060a09a5fba..eadd6455120ac10439209c2a532c4f66a60e0d29 100644
--- a/runtime/doc/usr_31.txt
+++ b/runtime/doc/usr_31.txt
@@ -1,4 +1,4 @@
-*usr_31.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
+*usr_31.txt*	For Vim version 7.0d.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_32.txt b/runtime/doc/usr_32.txt
index cbfb5c98d3d64cc92e37e58d9fc76f09e0398d6a..b2c4c8e151963c5fda61aa3ef593a26543cc6b41 100644
--- a/runtime/doc/usr_32.txt
+++ b/runtime/doc/usr_32.txt
@@ -1,4 +1,4 @@
-*usr_32.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*usr_32.txt*	For Vim version 7.0d.  Last change: 2006 Mar 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_40.txt b/runtime/doc/usr_40.txt
index ce7483996d11aaccda174a17051afd778c00bbaf..c9ecea1466a23c4cd8be3b7c041e368a8f164633 100644
--- a/runtime/doc/usr_40.txt
+++ b/runtime/doc/usr_40.txt
@@ -1,4 +1,4 @@
-*usr_40.txt*	For Vim version 7.0c.  Last change: 2006 Mar 24
+*usr_40.txt*	For Vim version 7.0d.  Last change: 2006 Mar 24
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 5b7fbb040d80f4187a9d2db866efa23d8195a3f1..38e0621b0b0d59c578e3ad49c6145929f9cf991f 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.0c.  Last change: 2006 Apr 09
+*usr_41.txt*	For Vim version 7.0d.  Last change: 2006 Apr 09
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_42.txt b/runtime/doc/usr_42.txt
index 3afc6db75352731c04ddb40fd9d7393ce7fa8ff2..10abb3c3a16d47fd7f0307273450116b4b75f969 100644
--- a/runtime/doc/usr_42.txt
+++ b/runtime/doc/usr_42.txt
@@ -1,4 +1,4 @@
-*usr_42.txt*	For Vim version 7.0c.  Last change: 2005 Apr 01
+*usr_42.txt*	For Vim version 7.0d.  Last change: 2005 Apr 01
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_43.txt b/runtime/doc/usr_43.txt
index 3ff816c1befbe031f6b4031e819ef6958c5e5961..a4b51c0d04dde98f959be36e93c6fa3fe3c95e97 100644
--- a/runtime/doc/usr_43.txt
+++ b/runtime/doc/usr_43.txt
@@ -1,4 +1,4 @@
-*usr_43.txt*	For Vim version 7.0c.  Last change: 2002 Jul 14
+*usr_43.txt*	For Vim version 7.0d.  Last change: 2002 Jul 14
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_44.txt b/runtime/doc/usr_44.txt
index 38370135543b33091b80a2bd941a593439eb1a4a..43437824568c2ea78d9842e4e0bce9c9220b4228 100644
--- a/runtime/doc/usr_44.txt
+++ b/runtime/doc/usr_44.txt
@@ -1,4 +1,4 @@
-*usr_44.txt*	For Vim version 7.0c.  Last change: 2006 Mar 27
+*usr_44.txt*	For Vim version 7.0d.  Last change: 2006 Mar 27
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_45.txt b/runtime/doc/usr_45.txt
index f6f2355785926437d3620eb4da57cd8cb7c805d2..d50b76ed9dd58e27b9b4d7ddc32c78ee8003ee5a 100644
--- a/runtime/doc/usr_45.txt
+++ b/runtime/doc/usr_45.txt
@@ -1,4 +1,4 @@
-*usr_45.txt*	For Vim version 7.0c.  Last change: 2004 Jun 08
+*usr_45.txt*	For Vim version 7.0d.  Last change: 2004 Jun 08
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_90.txt b/runtime/doc/usr_90.txt
index ff3c24da0035e62dc48990cf42b0d902c4100455..9ee374281c87e813d9d972163651998a45ae2312 100644
--- a/runtime/doc/usr_90.txt
+++ b/runtime/doc/usr_90.txt
@@ -1,4 +1,4 @@
-*usr_90.txt*	For Vim version 7.0c.  Last change: 2004 Mar 21
+*usr_90.txt*	For Vim version 7.0d.  Last change: 2004 Mar 21
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/usr_toc.txt b/runtime/doc/usr_toc.txt
index 1ce27b2aeb7ff2d398bf0579688a490a0712ed7a..8bd3f29e02c2e7c34266ecbc12611fc8f21307ba 100644
--- a/runtime/doc/usr_toc.txt
+++ b/runtime/doc/usr_toc.txt
@@ -1,4 +1,4 @@
-*usr_toc.txt*	For Vim version 7.0c.  Last change: 2006 Apr 02
+*usr_toc.txt*	For Vim version 7.0d.  Last change: 2006 Apr 02
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index ec672bea0c4ef96194932848530d335f0ebfe218..6456a645f744ffba50828b58eb4cb59b5c00877e 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.0c.  Last change: 2006 Mar 25
+*various.txt*   For Vim version 7.0d.  Last change: 2006 Mar 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/version4.txt b/runtime/doc/version4.txt
index 2d2adb65ab733867ad43e92d12821383cb35bbe7..dec6492351b3dc0077bd4bc1f1bbb8e1178176b8 100644
--- a/runtime/doc/version4.txt
+++ b/runtime/doc/version4.txt
@@ -1,4 +1,4 @@
-*version4.txt*  For Vim version 7.0c.  Last change: 2004 Mar 12
+*version4.txt*  For Vim version 7.0d.  Last change: 2004 Mar 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/version5.txt b/runtime/doc/version5.txt
index aa7257386cec25ce1351f88f8fd98fdcce8e8dbb..55892bfbbe5a4d31770aafe24821d571139c1c94 100644
--- a/runtime/doc/version5.txt
+++ b/runtime/doc/version5.txt
@@ -1,4 +1,4 @@
-*version5.txt*  For Vim version 7.0c.  Last change: 2005 Apr 01
+*version5.txt*  For Vim version 7.0d.  Last change: 2005 Apr 01
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
index 105caa39548cc6cc0d97ce68e121d9424c957d4a..d33e6f1303e139b28c3ed17495eccc6b808d4870 100644
--- a/runtime/doc/version6.txt
+++ b/runtime/doc/version6.txt
@@ -1,4 +1,4 @@
-*version6.txt*  For Vim version 7.0c.  Last change: 2005 Oct 17
+*version6.txt*  For Vim version 7.0d.  Last change: 2005 Oct 17
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 8bd9dad1fb551743f85702ec2cb005ac50134efa..a0758a69e6caae0d5fceabf05c063eec3b69f1d0 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0c.  Last change: 2006 Apr 09
+*version7.txt*  For Vim version 7.0d.  Last change: 2006 Apr 10
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -924,6 +924,7 @@ mailaliases syntax file. (Nikolai Weibull)
 mailcap ftplugin file. (Nikolai Weibull)
 manconf syntax and ftplugin file. (Nikolai Weibull)
 matlab ftplugin file. (Jake Wasserman)
+Maxima syntax file. (Robert Dodier)
 MGL syntax file. (Gero Kuhlmann)
 modconf ftplugin file. (Nikolai Weibull)
 mplayer config ftplugin file. (Nikolai Weibull)
@@ -2240,7 +2241,7 @@ apparently doesn't work everywhere.  Use %H:%M:%S instead.
 
 Typing BS at the "z=" prompt removed the prompt.
 
---- fixes since Vim 7.0c ---
+--- fixes and changes since Vim 7.0c ---
 
 When jumping to another tab page the Vim window size was always set, even when
 nothing in the layout changed.
@@ -2414,4 +2415,9 @@ glob('/dir/\$ABC/*') didn't work.
 When using several tab pages and changing 'cmdheight' the display could become
 messed up.  Now store the value of 'cmdheight' separately for each tab page.
 
+The user of the Enter key while the popup menu is visible was still confusing.
+Now use Enter to select the match after using a cursor key.
+
+Added "usetab" to 'switchbuf'.
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 55f27a5ab37d7740e80de6aa799bc4c6a47f61f9..307eb05fe1958663f94f0e614796175c7e9cf364 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.0c.  Last change: 2006 Jan 02
+*vi_diff.txt*   For Vim version 7.0d.  Last change: 2006 Jan 02
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/vimball.txt b/runtime/doc/vimball.txt
index 1fc1e36c5f11aad33fe48e86eca4926c79768369..4a679893ee82e4aa9ca5cafa2f570a0fb7b9fcc4 100644
--- a/runtime/doc/vimball.txt
+++ b/runtime/doc/vimball.txt
@@ -1,4 +1,4 @@
-*vimball.txt*	For Vim version 7.0c.  Last change: 2006 Apr 01
+*vimball.txt*	For Vim version 7.0d.  Last change: 2006 Apr 01
 
 	Vimball Archiver
 
diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt
index c1a7ec4d837561feceb7a1cd84a28c1c85259d31..44a96fd4eb48dbb909cd70f23e40017c92cce94e 100644
--- a/runtime/doc/visual.txt
+++ b/runtime/doc/visual.txt
@@ -1,4 +1,4 @@
-*visual.txt*    For Vim version 7.0c.  Last change: 2006 Mar 20
+*visual.txt*    For Vim version 7.0d.  Last change: 2006 Mar 20
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt
index fbc3e7888d14ef0e08bfd072080fe83691819a4a..c4aeb87d5019bcdd0052e61cb0e59b4812401745 100644
--- a/runtime/doc/windows.txt
+++ b/runtime/doc/windows.txt
@@ -1,4 +1,4 @@
-*windows.txt*   For Vim version 7.0c.  Last change: 2006 Apr 06
+*windows.txt*   For Vim version 7.0d.  Last change: 2006 Apr 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
diff --git a/runtime/doc/workshop.txt b/runtime/doc/workshop.txt
index 9374f105859e37a362936772af7b2227527b7cf0..1f4b35acfd5008a67349ce1ee3a4ca739e1a65df 100644
--- a/runtime/doc/workshop.txt
+++ b/runtime/doc/workshop.txt
@@ -1,4 +1,4 @@
-*workshop.txt*  For Vim version 7.0c.  Last change: 2005 Mar 29
+*workshop.txt*  For Vim version 7.0d.  Last change: 2005 Mar 29
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur
diff --git a/runtime/makemenu.vim b/runtime/makemenu.vim
index a0582d66de5cf7c626a790a07e8c4c63a8de96e3..02905c95e32de5647dc813b48937b88d3dbe5249 100644
--- a/runtime/makemenu.vim
+++ b/runtime/makemenu.vim
@@ -1,6 +1,6 @@
 " Script to define the syntax menu in synmenu.vim
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2006 Apr 07
+" Last Change:	2006 Apr 10
 
 " This is used by "make menu" in the src directory.
 edit <sfile>:p:h/synmenu.vim
@@ -278,6 +278,7 @@ SynMenu L-Ma.Maple\ V:maple
 SynMenu L-Ma.Mason:mason
 SynMenu L-Ma.Mathematica:mma
 SynMenu L-Ma.Matlab:matlab
+SynMenu L-Ma.Maxima:maxima
 
 SynMenu Me-NO.MEL\ (for\ Maya):mel
 SynMenu Me-NO.Metafont:mf
diff --git a/runtime/synmenu.vim b/runtime/synmenu.vim
index c37ef246b1a6152ee21f52711590b17edaae66d4..e7aec094793bfb7d9b98ba0ae86b03e82266c910 100644
--- a/runtime/synmenu.vim
+++ b/runtime/synmenu.vim
@@ -253,6 +253,7 @@ an 50.60.440 &Syntax.L-Ma.Maple\ V :cal SetSyn("maple")<CR>
 an 50.60.450 &Syntax.L-Ma.Mason :cal SetSyn("mason")<CR>
 an 50.60.460 &Syntax.L-Ma.Mathematica :cal SetSyn("mma")<CR>
 an 50.60.470 &Syntax.L-Ma.Matlab :cal SetSyn("matlab")<CR>
+an 50.60.480 &Syntax.L-Ma.Maxima :cal SetSyn("maxima")<CR>
 an 50.70.100 &Syntax.Me-NO.MEL\ (for\ Maya) :cal SetSyn("mel")<CR>
 an 50.70.110 &Syntax.Me-NO.Metafont :cal SetSyn("mf")<CR>
 an 50.70.120 &Syntax.Me-NO.MetaPost :cal SetSyn("mp")<CR>
diff --git a/runtime/syntax/maxima.vim b/runtime/syntax/maxima.vim
new file mode 100644
index 0000000000000000000000000000000000000000..ca982d7a42db045498107236e1342e5b019495ec
--- /dev/null
+++ b/runtime/syntax/maxima.vim
@@ -0,0 +1,274 @@
+" Vim syntax file
+" Language:	Maxima (symbolic algebra program)
+" Maintainer:	Robert Dodier (robert.dodier@gmail.com)
+" Last Change:	April 6, 2006
+" Version:	1
+" Adapted mostly from xmath.vim
+" Number formats adapted from r.vim
+"
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn sync lines=1000
+
+" parenthesis sanity checker
+syn region maximaZone	matchgroup=Delimiter start="(" matchgroup=Delimiter end=")" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaCurlyError
+syn region maximaZone	matchgroup=Delimiter start="{" matchgroup=Delimiter end="}" transparent contains=ALLBUT,maximaError,maximaBraceError,maximaParenError
+syn region maximaZone	matchgroup=Delimiter start="\[" matchgroup=Delimiter end="]" transparent contains=ALLBUT,maximaError,maximaCurlyError,maximaParenError
+syn match  maximaError	"[)\]}]"
+syn match  maximaBraceError	"[)}]"	contained
+syn match  maximaCurlyError	"[)\]]"	contained
+syn match  maximaParenError	"[\]}]"	contained
+syn match  maximaComma	"[\[\](),;]"
+syn match  maximaComma	"\.\.\.$"
+
+" A bunch of useful maxima keywords
+syn keyword maximaConditional	if then else elseif and or not
+syn keyword maximaRepeat	do for thru
+
+" ---------------------- BEGIN LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS)  ----------------------
+syn keyword maximaFunc abasep  abs  absboxchar  absint  acos  acosh  acot  acoth  acsc  
+syn keyword maximaFunc acsch  activate  activecontexts  addcol  additive  addrow  adim  
+syn keyword maximaFunc adjoint  af  aform  airy  algebraic  algepsilon  algexact  algsys  
+syn keyword maximaFunc alg_type  alias  aliases  allbut  all_dotsimp_denoms  allroots  allsym  
+syn keyword maximaFunc alphabetic  antid  antidiff  antisymmetric  append  appendfile  
+syn keyword maximaFunc apply  apply1  apply2  applyb1  apropos  args  array  arrayapply  
+syn keyword maximaFunc arrayinfo  arraymake  arrays  asec  asech  asin  asinh  askexp  
+syn keyword maximaFunc askinteger  asksign  assoc  assoc_legendre_p  assoc_legendre_q  assume  
+syn keyword maximaFunc assume_pos  assume_pos_pred  assumescalar  asymbol  asympa  at  atan  
+syn keyword maximaFunc atan2  atanh  atensimp  atom  atomgrad  atrig1  atvalue  augcoefmatrix  
+syn keyword maximaFunc av  backsubst  backtrace  bashindices  batch  batchload  bc2  bdvac  
+syn keyword maximaFunc berlefact  bern  bernpoly  bessel  besselexpand  bessel_i  bessel_j  
+syn keyword maximaFunc bessel_k  bessel_y  beta  bezout  bffac  bfhzeta  bfloat  bfloatp  
+syn keyword maximaFunc bfpsi  bfpsi0  bftorat  bftrunc  bfzeta  bimetric  binomial  block  
+syn keyword maximaFunc bothcoef  box  boxchar  break  breakup  bug_report  build_info  buildq  
+syn keyword maximaFunc burn  cabs  canform  canten  carg  cartan  catch  cauchysum  cbffac  
+syn keyword maximaFunc cdisplay  cf  cfdisrep  cfexpand  cflength  cframe_flag  cgeodesic  
+syn keyword maximaFunc changename  changevar  charpoly  checkdiv  check_overlaps  christof  
+syn keyword maximaFunc clear_rules  closefile  closeps  cmetric  cnonmet_flag  coeff  
+syn keyword maximaFunc coefmatrix  cograd  col  collapse  columnvector  combine  commutative  
+syn keyword maximaFunc comp2pui  compfile  compile  compile_file  components  concan  concat  
+syn keyword maximaFunc conj  conjugate  conmetderiv  cons  constant  constantp  cont2part  
+syn keyword maximaFunc content  context  contexts  contortion  contract  contragrad  coord  
+syn keyword maximaFunc copylist  copymatrix  cos  cosh  cosnpiflag  cot  coth  covdiff  
+syn keyword maximaFunc covect  create_list  csc  csch  csetup  ctaylor  ctaypov  ctaypt  
+syn keyword maximaFunc ctayswitch  ctayvar  ct_coords  ct_coordsys  ctorsion_flag  ctransform  
+syn keyword maximaFunc ctrgsimp  current_let_rule_package  dblint  deactivate  debugmode  
+syn keyword maximaFunc declare  declare_translated  declare_weight  decsym  
+syn keyword maximaFunc default_let_rule_package  defcon  define  define_variable  defint  
+syn keyword maximaFunc defmatch  defrule  deftaylor  del  delete  deleten  delta  demo  
+syn keyword maximaFunc demoivre  denom  dependencies  depends  derivabbrev  derivdegree  
+syn keyword maximaFunc derivlist  derivsubst  describe  desolve  determinant  detout  
+syn keyword maximaFunc diagmatrix  diagmatrixp  diagmetric  diff  dim  dimension  direct  
+syn keyword maximaFunc disolate  disp  dispcon  dispflag  dispform  dispfun  display  
+syn keyword maximaFunc display2d  display_format_internal  disprule  dispterms  distrib  
+syn keyword maximaFunc divide  divsum  doallmxops  domain  domxexpt  domxmxops  domxnctimes  
+syn keyword maximaFunc dontfactor  doscmxops  doscmxplus  dot0nscsimp  dot0simp  dot1simp  
+syn keyword maximaFunc dotassoc  dotconstrules  dotdistrib  dotexptsimp  dotident  dotscrules  
+syn keyword maximaFunc dotsimp  dpart  dscalar  %e  echelon  %edispflag  eigenvalues  
+syn keyword maximaFunc eigenvectors  eighth  einstein  eivals  eivects  ele2comp  
+syn keyword maximaFunc ele2polynome  ele2pui  elem  eliminate  elliptic_e  elliptic_ec  
+syn keyword maximaFunc elliptic_eu  elliptic_f  elliptic_kc  elliptic_pi  ematrix  %emode  
+syn keyword maximaFunc endcons  entermatrix  entertensor  entier  %enumer  equal  equalp  erf  
+syn keyword maximaFunc erfflag  errcatch  error  errormsg  error_size  error_syms  
+syn keyword maximaFunc %e_to_numlog  euler  ev  eval  evenp  every  evflag  evfun  evundiff  
+syn keyword maximaFunc example  exp  expand  expandwrt  expandwrt_denom  expandwrt_factored  
+syn keyword maximaFunc explose  expon  exponentialize  expop  express  expt  exptdispflag  
+syn keyword maximaFunc exptisolate  exptsubst  extdiff  extract_linear_equations  ezgcd  
+syn keyword maximaFunc facexpand  factcomb  factlim  factor  factorflag  factorial  factorout  
+syn keyword maximaFunc factorsum  facts  false  fast_central_elements  fast_linsolve  
+syn keyword maximaFunc fasttimes  fb  feature  featurep  features  fft  fib  fibtophi  fifth  
+syn keyword maximaFunc filename_merge  file_search  file_search_demo  file_search_lisp  
+syn keyword maximaFunc file_search_maxima  file_type  fillarray  findde  first  fix  flatten  
+syn keyword maximaFunc flipflag  float  float2bf  floatnump  flush  flush1deriv  flushd  
+syn keyword maximaFunc flushnd  forget  fortindent  fortran  fortspaces  fourcos  fourexpand  
+syn keyword maximaFunc fourier  fourint  fourintcos  fourintsin  foursimp  foursin  fourth  
+syn keyword maximaFunc fpprec  fpprintprec  frame_bracket  freeof  fullmap  fullmapl  
+syn keyword maximaFunc fullratsimp  fullratsubst  funcsolve  functions  fundef  funmake  funp  
+syn keyword maximaFunc gamma  %gamma  gammalim  gauss  gcd  gcdex  gcfactor  gdet  genfact  
+syn keyword maximaFunc genindex  genmatrix  gensumnum  get  getchar  gfactor  gfactorsum  
+syn keyword maximaFunc globalsolve  go  gradef  gradefs  gramschmidt  grind  grobner_basis  
+syn keyword maximaFunc gschmit  hach  halfangles  hermite  hipow  hodge  horner  i0  i1  
+syn keyword maximaFunc *read-base*  ic1  ic2  icc1  icc2  ic_convert  ichr1  ichr2  icounter  
+syn keyword maximaFunc icurvature  ident  idiff  idim  idummy  idummyx  ieqn  ieqnprint  ifb  
+syn keyword maximaFunc ifc1  ifc2  ifg  ifgi  ifr  iframe_bracket_form  iframes  ifri  ift  
+syn keyword maximaFunc igeodesic_coords  igeowedge_flag  ikt1  ikt2  ilt  imagpart  imetric  
+syn keyword maximaFunc inchar  indexed_tensor  indices  inf  %inf  infeval  infinity  infix  
+syn keyword maximaFunc inflag  infolists  init_atensor  init_ctensor  inm  inmc1  inmc2  
+syn keyword maximaFunc innerproduct  in_netmath  inpart  inprod  inrt  integerp  integrate  
+syn keyword maximaFunc integrate_use_rootsof  integration_constant_counter  interpolate  
+syn keyword maximaFunc intfaclim  intopois  intosum  intpolabs  intpolerror  intpolrel  
+syn keyword maximaFunc invariant1  invariant2  inverse_jacobi_cd  inverse_jacobi_cn  
+syn keyword maximaFunc inverse_jacobi_cs  inverse_jacobi_dc  inverse_jacobi_dn  
+syn keyword maximaFunc inverse_jacobi_ds  inverse_jacobi_nc  inverse_jacobi_nd  
+syn keyword maximaFunc inverse_jacobi_ns  inverse_jacobi_sc  inverse_jacobi_sd  
+syn keyword maximaFunc inverse_jacobi_sn  invert  is  ishow  isolate  isolate_wrt_times  
+syn keyword maximaFunc isqrt  itr  j0  j1  jacobi  jacobi_cd  jacobi_cn  jacobi_cs  jacobi_dc  
+syn keyword maximaFunc jacobi_dn  jacobi_ds  jacobi_nc  jacobi_nd  jacobi_ns  jacobi_sc  
+syn keyword maximaFunc jacobi_sd  jacobi_sn  jn  kdels  kdelta  keepfloat  kill  killcontext  
+syn keyword maximaFunc kinvariant  kostka  kt  labels  lambda  laplace  lassociative  last  
+syn keyword maximaFunc lc2kdt  lc_l  lcm  lc_u  ldefint  ldisp  ldisplay  leinstein  length  
+syn keyword maximaFunc let  letrat  let_rule_packages  letrules  letsimp  levi_civita  lfg  
+syn keyword maximaFunc lfreeof  lg  lgtreillis  lhospitallim  lhs  liediff  limit  limsubst  
+syn keyword maximaFunc linear  linechar  linel  linenum  linsolve  linsolve_params  
+syn keyword maximaFunc linsolvewarn  listarith  listarray  listconstvars  listdummyvars  
+syn keyword maximaFunc list_nc_monomials  listoftens  listofvars  listp  lmxchar  load  
+syn keyword maximaFunc loadfile  loadprint  local  log  logabs  logarc  logconcoeffp  
+syn keyword maximaFunc logcontract  logexpand  lognegint  lognumer  logsimp  lopow  
+syn keyword maximaFunc lorentz_gauge  lpart  lratsubst  lriem  lriemann  lsum  ltreillis  
+syn keyword maximaFunc m1pbranch  macroexpansion  mainvar  make_array  makebox  makefact  
+syn keyword maximaFunc makegamma  makelist  make_random_state  make_transform  map  mapatom  
+syn keyword maximaFunc maperror  maplist  matchdeclare  matchfix  matrix  matrix_element_add  
+syn keyword maximaFunc matrix_element_mult  matrix_element_transpose  matrixmap  matrixp  
+syn keyword maximaFunc mattrace  max  maxapplydepth  maxapplyheight  maxnegex  maxposex  
+syn keyword maximaFunc maxtayorder  member  min  %minf  minfactorial  minor  mod  
+syn keyword maximaFunc mode_check_errorp  mode_checkp  mode_check_warnp  mode_declare  
+syn keyword maximaFunc mode_identity  modulus  mon2schur  mono  monomial_dimensions  
+syn keyword maximaFunc multi_elem  multinomial  multi_orbit  multiplicative  multiplicities  
+syn keyword maximaFunc multi_pui  multsym  multthru  myoptions  nc_degree  ncexpt  ncharpoly  
+syn keyword maximaFunc negdistrib  negsumdispflag  newcontext  newdet  newton  niceindices  
+syn keyword maximaFunc niceindicespref  ninth  nm  nmc  noeval  nolabels  nonmetricity  
+syn keyword maximaFunc nonscalar  nonscalarp  noun  noundisp  nounify  nouns  np  npi  
+syn keyword maximaFunc nptetrad  nroots  nterms  ntermst  nthroot  ntrig  num  numberp  numer  
+syn keyword maximaFunc numerval  numfactor  nusum  obase  oddp  ode2  op  openplot_curves  
+syn keyword maximaFunc operatorp  opproperties  opsubst  optimize  optimprefix  optionset
+syn keyword maximaFunc orbit  ordergreat  ordergreatp  orderless  orderlessp  outative  
+syn keyword maximaFunc outchar  outermap  outofpois  packagefile  pade  part  part2cont  
+syn keyword maximaFunc partfrac  partition  partpol  partswitch  permanent  permut  petrov  
+syn keyword maximaFunc pfeformat  pi  pickapart  piece  playback  plog  plot2d  plot2d_ps  
+syn keyword maximaFunc plot3d  plot_options  poisdiff  poisexpt  poisint  poislim  poismap  
+syn keyword maximaFunc poisplus  poissimp  poisson  poissubst  poistimes  poistrim  polarform  
+syn keyword maximaFunc polartorect  polynome2ele  posfun  potential  powerdisp  powers  
+syn keyword maximaFunc powerseries  pred  prederror  primep  print  printpois  printprops  
+syn keyword maximaFunc prodhack  prodrac  product  programmode  prompt  properties  props  
+syn keyword maximaFunc propvars  pscom  psdraw_curve  psexpand  psi  pui  pui2comp  pui2ele  
+syn keyword maximaFunc pui2polynome  pui_direct  puireduc  put  qput  qq  quad_qag  quad_qagi  
+syn keyword maximaFunc quad_qags  quad_qawc  quad_qawf  quad_qawo  quad_qaws  quanc8  quit  
+syn keyword maximaFunc qunit  quotient  radcan  radexpand  radsubstflag  random  rank  
+syn keyword maximaFunc rassociative  rat  ratalgdenom  ratchristof  ratcoef  ratdenom  
+syn keyword maximaFunc ratdenomdivide  ratdiff  ratdisrep  rateinstein  ratepsilon  ratexpand  
+syn keyword maximaFunc ratfac  ratmx  ratnumer  ratnump  ratp  ratprint  ratriemann  ratsimp  
+syn keyword maximaFunc ratsimpexpons  ratsubst  ratvars  ratweight  ratweights  ratweyl  
+syn keyword maximaFunc ratwtlvl  read  readonly  realonly  realpart  realroots  rearray  
+syn keyword maximaFunc rectform  recttopolar  rediff  refcheck  rem  remainder  remarray  
+syn keyword maximaFunc rembox  remcomps  remcon  remcoord  remfun  remfunction  remlet  
+syn keyword maximaFunc remove  remrule  remsym  remvalue  rename  reset  residue  resolvante  
+syn keyword maximaFunc resolvante_alternee1  resolvante_bipartite  resolvante_diedrale  
+syn keyword maximaFunc resolvante_klein  resolvante_klein3  resolvante_produit_sym  
+syn keyword maximaFunc resolvante_unitaire  resolvante_vierer  rest  resultant  return  
+syn keyword maximaFunc reveal  reverse  revert  revert2  rhs  ric  ricci  riem  riemann  
+syn keyword maximaFunc rinvariant  risch  rmxchar  rncombine  %rnum_list  romberg  rombergabs  
+syn keyword maximaFunc rombergit  rombergmin  rombergtol  room  rootsconmode  rootscontract  
+syn keyword maximaFunc rootsepsilon  round  row  run_testsuite  save  savedef  savefactors  
+syn keyword maximaFunc scalarmatrixp  scalarp  scalefactors  scanmap  schur2comp  sconcat  
+syn keyword maximaFunc scsimp  scurvature  sec  sech  second  setcheck  setcheckbreak  
+syn keyword maximaFunc setelmx  set_plot_option  set_random_state  setup_autoload  
+syn keyword maximaFunc set_up_dot_simplifications  setval  seventh  sf  show  showcomps  
+syn keyword maximaFunc showratvars  showtime  sign  signum  similaritytransform  simpsum  
+syn keyword maximaFunc simtran  sin  sinh  sinnpiflag  sixth  solve  solvedecomposes  
+syn keyword maximaFunc solveexplicit  solvefactors  solve_inconsistent_error  solvenullwarn  
+syn keyword maximaFunc solveradcan  solvetrigwarn  somrac  sort  sparse  spherical_bessel_j  
+syn keyword maximaFunc spherical_bessel_y  spherical_hankel1  spherical_hankel2  
+syn keyword maximaFunc spherical_harmonic  splice  sqfr  sqrt  sqrtdispflag  sstatus  
+syn keyword maximaFunc stardisp  status  string  stringout  sublis  sublis_apply_lambda  
+syn keyword maximaFunc sublist  submatrix  subst  substinpart  substpart  subvarp  sum  
+syn keyword maximaFunc sumcontract  sumexpand  sumhack  sumsplitfact  supcontext  symbolp  
+syn keyword maximaFunc symmetric  symmetricp  system  tan  tanh  taylor  taylordepth  
+syn keyword maximaFunc taylorinfo  taylor_logexpand  taylor_order_coefficients  taylorp  
+syn keyword maximaFunc taylor_simplifier  taylor_truncate_polynomials  taytorat  tcl_output  
+syn keyword maximaFunc tcontract  tellrat  tellsimp  tellsimpafter  tensorkill  tentex  tenth  
+syn keyword maximaFunc tex  %th  third  throw  time  timer  timer_devalue  timer_info  
+syn keyword maximaFunc tldefint  tlimit  tlimswitch  todd_coxeter  to_lisp  totaldisrep  
+syn keyword maximaFunc totalfourier  totient  tpartpol  tr  trace  trace_options  
+syn keyword maximaFunc transcompile  translate  translate_file  transpose  transrun  
+syn keyword maximaFunc tr_array_as_ref  tr_bound_function_applyp  treillis  treinat  
+syn keyword maximaFunc tr_file_tty_messagesp  tr_float_can_branch_complex  
+syn keyword maximaFunc tr_function_call_default  triangularize  trigexpand  trigexpandplus  
+syn keyword maximaFunc trigexpandtimes  triginverses  trigrat  trigreduce  trigsign  trigsimp  
+syn keyword maximaFunc tr_numer  tr_optimize_max_loop  tr_semicompile  tr_state_vars  true  
+syn keyword maximaFunc trunc  truncate  tr_warn_bad_function_calls  tr_warn_fexpr  
+syn keyword maximaFunc tr_warnings_get  tr_warn_meval  tr_warn_mode  tr_warn_undeclared  
+syn keyword maximaFunc tr_warn_undefined_variable  tr_windy  ttyoff  ueivects  ufg  ug  
+syn keyword maximaFunc ultraspherical  undiff  uniteigenvectors  unitvector  unknown  unorder  
+syn keyword maximaFunc unsum  untellrat  untimer  untrace  uric  uricci  uriem  uriemann  
+syn keyword maximaFunc use_fast_arrays  uvect  values  vect_cross  vectorpotential  
+syn keyword maximaFunc vectorsimp  verb  verbify  verbose  weyl  with_stdout  writefile  
+syn keyword maximaFunc xgraph_curves  xthru  zerobern  zeroequiv  zeromatrix  zeta  zeta%pi
+syn match maximaOp "[\*\/\+\-\#\!\~\^\=\:\<\>\@]"
+" ---------------------- END LIST OF ALL FUNCTIONS (EXCEPT KEYWORDS)  ----------------------
+
+
+syn case match
+
+" Labels (supports maxima's goto)
+syn match   maximaLabel	 "^\s*<[a-zA-Z_][a-zA-Z0-9%_]*>"
+
+" String and Character constants
+" Highlight special characters (those which have a backslash) differently
+syn match   maximaSpecial	contained "\\\d\d\d\|\\."
+syn region  maximaString	start=+"+  skip=+\\\\\|\\"+  end=+"+ contains=maximaSpecial
+syn match   maximaCharacter	"'[^\\]'"
+syn match   maximaSpecialChar	"'\\.'"
+
+" number with no fractional part or exponent
+syn match maximaNumber /\<\d\+\>/
+" floating point number with integer and fractional parts and optional exponent
+syn match maximaFloat /\<\d\+\.\d*\([BbDdEeSs][-+]\=\d\+\)\=\>/
+" floating point number with no integer part and optional exponent
+syn match maximaFloat /\<\.\d\+\([BbDdEeSs][-+]\=\d\+\)\=\>/
+" floating point number with no fractional part and optional exponent
+syn match maximaFloat /\<\d\+[BbDdEeSs][-+]\=\d\+\>/
+
+" Comments:
+" maxima supports /* ... */ (like C)
+syn keyword maximaTodo contained	TODO Todo DEBUG
+syn region  maximaCommentBlock	start="/\*" end="\*/"	contains=maximaString,maximaTodo
+
+" synchronizing
+syn sync match maximaSyncComment	grouphere maximaCommentBlock "/*"
+syn sync match maximaSyncComment	groupthere NONE "*/"
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_maxima_syntax_inits")
+  if version < 508
+    let did_maxima_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink maximaBraceError	maximaError
+  HiLink maximaCmd	maximaStatement
+  HiLink maximaCurlyError	maximaError
+  HiLink maximaFuncCmd	maximaStatement
+  HiLink maximaParenError	maximaError
+
+  " The default methods for highlighting.  Can be overridden later
+  HiLink maximaCharacter	Character
+  HiLink maximaComma	Function
+  HiLink maximaCommentBlock	Comment
+  HiLink maximaConditional	Conditional
+  HiLink maximaError	Error
+  HiLink maximaFunc	Delimiter
+  HiLink maximaOp                 Delimiter
+  HiLink maximaLabel	PreProc
+  HiLink maximaNumber	Number
+  HiLink maximaFloat	Float
+  HiLink maximaRepeat	Repeat
+  HiLink maximaSpecial	Type
+  HiLink maximaSpecialChar	SpecialChar
+  HiLink maximaStatement	Statement
+  HiLink maximaString	String
+  HiLink maximaTodo	Todo
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "maxima"
diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim
index 70ec47ed5f4da73245744c5abbb98327f3931e55..6e24251ffec12f592a926f3785974a5f0fb2fa54 100644
--- a/runtime/syntax/rst.vim
+++ b/runtime/syntax/rst.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         reStructuredText documentation format
-" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2006-03-26
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2006-04-09
 
 if exists("b:current_syntax")
   finish
@@ -10,90 +10,167 @@ endif
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn keyword     rstTodo             contained FIXME TODO XXX NOTE
-
 syn case ignore
 
-syn region      rstComment          start='^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)'
-                                    \ end='^\s\@!' contains=rstTodo
+" FIXME: The problem with these two is that Vim doesn’t seem to like
+" matching across line boundaries.
+"
+" syn match   rstSections /^.*\n[=`:.'"~^_*+#-]\+$/
 
-syn cluster     rstCruft            contains=rstFootnoteLabel,rstCitationLabel,
-                                    \ rstSubstitutionLabel,rstInline,
-                                    \ rstHyperlinks,rstInternalTarget
+" syn match   rstTransition  /^\s*[=`:.'"~^_*+#-]\{4,}\s*$/
 
-syn region      rstBlock            matchgroup=rstDelimiter
-                                    \ start='::$' skip='^$' end='^\s\@!'
-syn region      rstDoctestBlock     matchgroup=rstDelimiter
-                                    \ start='^>>>\s' end='^$'
+syn cluster rstCruft                contains=rstEmphasis,rstStrongEmphasis,
+      \ rstInterpretedText,rstInlineLiteral,rstSubstitutionReference,
+      \ rstInlineInternalTargets,rstFootnoteReference,rstHyperlinkReference
 
-" TODO: these may actually be a bit too complicated to match correctly and
-" should perhaps be removed.  We won't really needs it anyway?
-syn region      rstTable            transparent start='^\n\s*+[-=+]\+' end='^$'
-                                    \ contains=rstTableLines,@rstCruft
-syn match       rstTableLines       contained '^\s*[|+=-]\+$'
-syn region      rstSimpleTable      transparent
-                                    \ start='^\n\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
-                                    \ end='^$'
-                                    \ contains=rstSimpleTableLines,@rstCruft
-syn match       rstSimpleTableLines contained display
-                                    \ '^\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
+syn region  rstLiteralBlock         matchgroup=rstDelimiter
+      \ start='::\_s*\n\ze\z(\s\+\)' skip='^$' end='^\z1\@!'
+      \ contains=@NoSpell
 
-syn region      rstFootnote         matchgroup=rstDirective
-                                    \ start='^\.\. \[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]\s'
-                                    \ end='^\s\@!' contains=@rstCruft
-syn match       rstFootnoteLabel    '\[\%([#*]\|[0-9]\+\|#[a-z0-9_.-]\+\)\]_'
+syn region  rstQuotedLiteralBlock   matchgroup=rstDelimiter
+      \ start="::\_s*\n\ze\z([!\"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]\)"
+      \ end='^\z1\@!' contains=@NoSpell
 
-syn region      rstCitation         matchgroup=rstDirective
-                                    \ start='^\.\. \[[a-z0-9_.-]\+\]\s'
-                                    \ end='^\s\@!' contains=@rstCruft
-syn match       rstCitationLabel    '\[[a-z0-9_.-]\+\]_'
+syn region  rstDoctestBlock         oneline display matchgroup=rstDelimiter
+      \ start='^>>>\s' end='^$'
 
-syn region      rstDirectiveBody    matchgroup=rstDirective
-                                    \ start='^\.\. [a-z0-9_.-]\+::'
-                                    \ end='^\s\@!'
+syn region  rstTable                transparent start='^\n\s*+[-=+]\+' end='^$'
+      \ contains=rstTableLines,@rstCruft
+syn match   rstTableLines           contained display '|\|+\%(=\+\|-\+\)\='
 
-syn region      rstSubstitution     matchgroup=rstDirective
-                                    \ start='^\.\. |[a-z0-9_.-]|\s[a-z0-9_.-]\+::\s'
-                                    \ end='^\s\@!' contains=@rstCruft
-syn match       rstSubstitutionLbl  '|[a-z0-9_.-]|'
+syn region  rstSimpleTable          transparent
+      \ start='^\n\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
+      \ end='^$'
+      \ contains=rstSimpleTableLines,@rstCruft
+syn match   rstSimpleTableLines     contained display
+      \ '^\%(\s*\)\@>\%(\%(=\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(=\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
+syn match   rstSimpleTableLines     contained display
+      \ '^\%(\s*\)\@>\%(\%(-\+\)\@>\%(\s\+\)\@>\)\%(\%(\%(-\+\)\@>\%(\s*\)\@>\)\+\)\@>$'
 
-syn match       rstInline           '\*\{1,2}\S\%([^*]*\S\)\=\*\{1,2}'
-syn match       rstInline           '`\{1,2}\S\%([^`]*\S\)\=`\{1,2}'
+syn cluster rstDirectives           contains=rstFootnote,rstCitation,
+      \ rstHyperlinkTarget,rstExDirective
 
-syn region      rstHyperlinks       matchgroup=RstDirective
-                                    \ start='^\.\. _[a-z0-9_. -]\+:\s'
-                                    \ end='^\s\@!' contains=@rstCruft
+syn match   rstExplicitMarkup       '^\.\.\s'
+      \ nextgroup=@rstDirectives,rstComment,rstSubstitutionDefinition
 
-syn match       rstHyperlinksLabel  '`\S\%([^`]*\S\)\=`__\=\>'
-syn match       rstHyperlinksLabel  '\w\+__\=\>'
+let s:ReferenceName = '[[:alnum:]]\+\%([_.-][[:alnum:]]\+\)*'
 
-syn match       rstInternalTarget   '_`\S\%([^`]*\S\)\=`'
-
-syn match       rstListItem         '^:\w\+\%(\s\+\w\+\)*:'
-syn match       rstListItem         '^\s*[-*+]\s\+'
+syn keyword     rstTodo             contained FIXME TODO XXX NOTE
 
+execute 'syn region rstComment contained' .
+      \ ' start=/.*/'
+      \ ' end=/^\s\@!/ contains=rstTodo'
+
+execute 'syn region rstFootnote contained matchgroup=rstDirective' .
+      \ ' start=+\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]\_s+' .
+      \ ' skip=+^$+' .
+      \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell'
+
+execute 'syn region rstCitation contained matchgroup=rstDirective' .
+      \ ' start=+\[' . s:ReferenceName . '\]\_s+' .
+      \ ' skip=+^$+' .
+      \ ' end=+^\s\@!+ contains=@rstCruft,@NoSpell'
+
+syn region rstHyperlinkTarget contained matchgroup=rstDirective
+      \ start='_\%(_\|[^:\\]*\%(\\.[^:\\]*\)*\):\_s' skip=+^$+ end=+^\s\@!+
+
+syn region rstHyperlinkTarget contained matchgroup=rstDirective
+      \ start='_`[^`\\]*\%(\\.[^`\\]*\)*`:\_s' skip=+^$+ end=+^\s\@!+
+
+syn region rstHyperlinkTarget matchgroup=rstDirective
+      \ start=+^__\_s+ skip=+^$+ end=+^\s\@!+
+
+execute 'syn region rstExDirective contained matchgroup=rstDirective' .
+      \ ' start=+' . s:ReferenceName . '::\_s+' .
+      \ ' skip=+^$+' .
+      \ ' end=+^\s\@!+ contains=@rstCruft'
+
+execute 'syn match rstSubstitutionDefinition contained' .
+      \ ' /|' . s:ReferenceName . '|\_s\+/ nextgroup=@rstDirectives'
+
+function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_right)
+  execute 'syn region rst' . a:name .
+        \ ' start=+' . a:char_left . '\zs' . a:start .
+        \ '[^[:space:]' . a:char_right . a:start[strlen(a:start) - 1] . ']+' .
+        \ a:middle .
+        \ ' end=+\S' . a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
+endfunction
+
+function! s:DefineInlineMarkup(name, start, middle, end)
+  let middle = a:middle != "" ?
+        \ (' skip=+\\\\\|\\' . a:middle . '+') :
+        \ ""
+
+  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, "'", "'")
+  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '"', '"') 
+  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '(', ')') 
+  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\[', '\]') 
+  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '{', '}') 
+  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '<', '>') 
+
+  call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|[/:]\)', '')
+
+  execute 'syn match rst' . a:name .
+        \ ' +\%(^\|\s\|[''"([{</:]\)\zs' . a:start .
+        \ '[^[:space:]' . a:start[strlen(a:start) - 1] . ']'
+        \ a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
+
+  execute 'hi def link rst' . a:name . 'Delimiter' . ' rst' . a:name
+endfunction
+
+call s:DefineInlineMarkup('Emphasis', '\*', '\*', '\*')
+call s:DefineInlineMarkup('StrongEmphasis', '\*\*', '\*', '\*\*')
+call s:DefineInlineMarkup('InterpretedTextOrHyperlinkReference', '`', '`', '`_\{0,2}')
+call s:DefineInlineMarkup('InlineLiteral', '``', "", '``')
+call s:DefineInlineMarkup('SubstitutionReference', '|', '|', '|_\{0,2}')
+call s:DefineInlineMarkup('InlineInternalTargets', '_`', '`', '`')
+
+" TODO: Can’t remember why these two can’t be defined like the ones above.
+execute 'syn match rstFootnoteReference contains=@NoSpell' .
+      \ ' +\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]_+'
+
+execute 'syn match rstCitationReference contains=@NoSpell' .
+      \ ' +\[' . s:ReferenceName . '\]_+'
+
+execute 'syn match rstHyperlinkReference' .
+      \ ' /\<' . s:ReferenceName . '__\=/'
+
+syn match   rstStandaloneHyperlink  contains=@NoSpell
+      \ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]"
+
+" TODO: Use better syncing.  I don’t know the specifics of syncing well enough,
+" though.
 syn sync minlines=50
 
-hi def link rstTodo                 Todo
-hi def link rstComment              Comment
-hi def link rstDelimiter            Delimiter
-hi def link rstBlock                String
-hi def link rstDoctestBlock         PreProc
-hi def link rstTableLines           Delimiter
-hi def link rstSimpleTableLines     rstTableLines
-hi def link rstFootnote             String
-hi def link rstFootnoteLabel        Identifier
-hi def link rstCitation             String
-hi def link rstCitationLabel        Identifier
-hi def link rstDirective            Keyword
-hi def link rstDirectiveBody        Type
-hi def link rstSubstitution         String
-hi def link rstSubstitutionLbl      Identifier
-hi def link rstHyperlinks           String
-hi def link rstHyperlinksLabel      Identifier
-hi def link rstListItem             Identifier
-hi def      rstInline               term=italic cterm=italic gui=italic
-hi def      rstInternalTarget       term=italic cterm=italic gui=italic
+hi def link rstTodo                         Todo
+hi def link rstComment                      Comment
+"hi def link rstSections                     Type
+"hi def link rstTransition                   Type
+hi def link rstLiteralBlock                 String
+hi def link rstQuotedLiteralBlock           String
+hi def link rstDoctestBlock                 PreProc
+hi def link rstTableLines                   rstDelimiter
+hi def link rstSimpleTableLines             rstTableLines
+hi def link rstExplicitMarkup               rstDirective
+hi def link rstDirective                    Keyword
+hi def link rstFootnote                     String
+hi def link rstCitation                     String
+hi def link rstHyperlinkTarget              String
+hi def link rstExDirective                  String
+hi def link rstSubstitutionDefinition       rstDirective
+hi def link rstDelimiter                    Delimiter
+" TODO: I dunno...
+hi def      rstEmphasis                     term=italic cterm=italic gui=italic
+hi def link rstStrongEmphasis               Special
+"term=bold cterm=bold gui=bold
+hi def link rstInterpretedTextOrHyperlinkReference  Identifier
+hi def link rstInlineLiteral                String
+hi def link rstSubstitutionReference        PreProc
+hi def link rstInlineInternalTargets        Identifier
+hi def link rstFootnoteReference            Identifier
+hi def link rstCitationReference            Identifier
+hi def link rstHyperLinkReference           Identifier
+hi def link rstStandaloneHyperlink          Identifier
 
 let b:current_syntax = "rst"
 
diff --git a/src/GvimExt/GvimExt.reg b/src/GvimExt/GvimExt.reg
index b59234564ffc5d36e64f84636d94da4d86a3a221..0169fe10bdf533b7d8b055f84d9f92a689e300e3 100644
--- a/src/GvimExt/GvimExt.reg
+++ b/src/GvimExt/GvimExt.reg
@@ -15,6 +15,6 @@ REGEDIT4
 [HKEY_LOCAL_MACHINE\Software\Vim\Gvim]
    "path"="gvim.exe"
 
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0c]
-   "DisplayName"="Vim 7.0c: Edit with Vim popup menu entry"
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0d]
+   "DisplayName"="Vim 7.0d: Edit with Vim popup menu entry"
    "UninstallString"="uninstal.exe"
diff --git a/src/Makefile b/src/Makefile
index c79f96d24b9ea4ad8092405919925e759731740e..625271fec9d38c2a65666ca933e92b7368710859 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -880,7 +880,7 @@ MAN1DIR = /man1
 
 ### Vim version (adjusted by a script)
 VIMMAJOR = 7
-VIMMINOR = 0c
+VIMMINOR = 0d
 
 ### Location of Vim files (should not need to be changed, and  {{{1
 ### some things might not work when they are changed!)
diff --git a/src/buffer.c b/src/buffer.c
index fbad67c99c0be7330e7e928588b38e478e7b9512..64ed9711d00cfc85dfd1309bc5f3699ad75c006f 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1212,7 +1212,11 @@ do_buffer(action, start, dir, count, forceit)
     {
 # ifdef FEAT_WINDOWS
 	/* jump to first window containing buf if one exists ("useopen") */
-	if (vim_strchr(p_swb, 'u') && buf_jump_open_win(buf))
+	if (vim_strchr(p_swb, 'o') && buf_jump_open_win(buf))
+	    return OK;
+	/* jump to first window in any tab page containing buf if one exists
+	 * ("usetab") */
+	if (vim_strchr(p_swb, 'a') && buf_jump_open_tab(buf))
 	    return OK;
 	if (win_split(0, 0) == FAIL)
 # endif
@@ -1316,7 +1320,7 @@ set_curbuf(buf, action)
 #endif
 	{
 	    if (prevbuf == curbuf)
-		u_sync();
+		u_sync(FALSE);
 	    close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf,
 		    unload ? action : (action == DOBUF_GOTO
 			&& !P_HID(prevbuf)
@@ -1833,8 +1837,11 @@ buflist_getfile(n, lnum, options, forceit)
     if (options & GETF_SWITCH)
     {
 	/* use existing open window for buffer if wanted */
-	if (vim_strchr(p_swb, 'u'))     /* useopen */
+	if (vim_strchr(p_swb, 'o'))     /* useopen */
 	    wp = buf_jump_open_win(buf);
+	/* use existing open window in any tab page for buffer if wanted */
+	if (vim_strchr(p_swb, 'a'))     /* usetab */
+	    wp = buf_jump_open_tab(buf);
 	/* split window if wanted ("split") */
 	if (wp == NULL && vim_strchr(p_swb, 't') && !bufempty())
 	{
diff --git a/src/diff.c b/src/diff.c
index f02aa5ef27fdf80c9e2ff12e80e2c8fd75f52daa..bc0364c77c0dc13ec53a6ea1178944a3bd6126c3 100644
--- a/src/diff.c
+++ b/src/diff.c
@@ -2233,7 +2233,7 @@ ex_diffgetput(eap)
 	 * another buffer.  Sync undo if the command was typed.  This isn't
 	 * 100% right when ":diffput" is used in a function or mapping. */
 	if (KeyTyped)
-	    u_sync();
+	    u_sync(FALSE);
 	aucmd_restbuf(&aco);
     }
 
diff --git a/src/edit.c b/src/edit.c
index e70a23575dcb91104952cb1dca12f1376cc98b5a..08a24d7e77cb7b0201a56044f5416d855cb7e7f6 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -90,6 +90,10 @@ static compl_T    *compl_first_match = NULL;
 static compl_T    *compl_curr_match = NULL;
 static compl_T    *compl_shown_match = NULL;
 
+/* After using a cursor key <Enter> selects a match in the popup menu,
+ * otherwise it inserts a line break. */
+static int	  compl_enter_selects = FALSE;
+
 /* When "compl_leader" is not NULL only matches that start with this string
  * are used. */
 static char_u	  *compl_leader = NULL;
@@ -726,8 +730,10 @@ edit(cmdchar, startln, count)
 		    continue;
 		}
 
-		/* Pressing CTRL-Y selects the current match. */
-		if (c == Ctrl_Y)
+		/* Pressing CTRL-Y selects the current match.  Shen
+		 * compl_enter_selects is set the Enter key does the same. */
+		if (c == Ctrl_Y || (compl_enter_selects
+				   && (c == CAR || c == K_KENTER || c == NL)))
 		{
 		    ins_compl_delete();
 		    ins_compl_insert();
@@ -2915,6 +2921,7 @@ ins_compl_clear()
     edit_submode_extra = NULL;
     vim_free(compl_orig_text);
     compl_orig_text = NULL;
+    compl_enter_selects = FALSE;
 }
 
 /*
@@ -2976,6 +2983,7 @@ ins_compl_bs()
 	/* Show the popup menu with a different set of matches. */
 	ins_compl_show_pum();
 	compl_used_match = FALSE;
+	compl_enter_selects = FALSE;
 
 	return TRUE;
     }
@@ -3014,6 +3022,7 @@ ins_compl_addleader(c)
 	ins_compl_del_pum();
 	ins_compl_show_pum();
 	compl_used_match = FALSE;
+	compl_enter_selects = FALSE;
 	ins_compl_set_original_text(compl_leader);
     }
 }
@@ -3277,8 +3286,11 @@ ins_compl_prep(c)
 	    auto_format(FALSE, TRUE);
 
 	    /* If the popup menu is displayed pressing CTRL-Y means accepting
-	     * the selection without inserting anything. */
-	    if (c == Ctrl_Y && pum_visible())
+	     * the selection without inserting anything.  When
+	     * compl_enter_selects is set the Enter key does the same. */
+	    if ((c == Ctrl_Y || (compl_enter_selects
+				   && (c == CAR || c == K_KENTER || c == NL)))
+		    && pum_visible())
 		retval = TRUE;
 
 	    /* CTRL-E means completion is Ended, go back to the typed text. */
@@ -3298,6 +3310,7 @@ ins_compl_prep(c)
 	    compl_matches = 0;
 	    msg_clr_cmdline();		/* necessary for "noshowmode" */
 	    ctrl_x_mode = 0;
+	    compl_enter_selects = FALSE;
 	    if (edit_submode != NULL)
 	    {
 		edit_submode = NULL;
@@ -4049,6 +4062,10 @@ ins_compl_next(allow_get_expansion, count, insert_match)
 	ins_compl_delete();
     }
 
+    /* Enter will select a match when the match wasn't inserted and the popup
+     * menu is visislbe. */
+    compl_enter_selects = !insert_match && compl_match_array != NULL;
+
     /*
      * Show the file name for the match (if any)
      * Truncate the file name to avoid a wait for return.
@@ -7277,7 +7294,7 @@ ins_ctrl_g()
 		  break;
 
 	/* CTRL-G u: start new undoable edit */
-	case 'u': u_sync();
+	case 'u': u_sync(TRUE);
 		  ins_need_undo = TRUE;
 
 		  /* Need to reset Insstart, esp. because a BS that joins
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 790b30ef1f24f84ee3422017312b0bfa59f6fe34..9206e0288962562d975497a466bc6afec27dae0f 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3253,7 +3253,7 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags)
 		    buf_copy_options(buf, BCO_ENTER);
 
 		/* close the link to the current buffer */
-		u_sync();
+		u_sync(FALSE);
 		close_buffer(curwin, curbuf,
 				      (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD);
 
@@ -4289,7 +4289,7 @@ do_sub(eap)
 
     if (!do_count && !curbuf->b_p_ma)
     {
-	/* Substitusion is not allowed in non-'modifiable' buffer */
+	/* Substitution is not allowed in non-'modifiable' buffer */
 	EMSG(_(e_modifiable));
 	return;
     }
@@ -6919,12 +6919,7 @@ ex_drop(eap)
 	    if (wp->w_buffer == buf)
 	    {
 # ifdef FEAT_WINDOWS
-		goto_tabpage_tp(tp);
-		win_enter(wp, TRUE);
-#  ifdef FEAT_GUI_TABLINE
-		if (gui_use_tabline())
-		    gui_mch_set_curtab(tabpage_index(curtab));
-#  endif
+		goto_tabpage_win(tp, wp);
 # endif
 		curwin->w_arg_idx = 0;
 		return;
diff --git a/src/getchar.c b/src/getchar.c
index 60a2a9b420a85af5930ead5f663cb04810a15cba..4c38cd758923e9021919be06395ad2a92c10b10d 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1201,8 +1201,8 @@ gotchars(s, len)
 may_sync_undo()
 {
     if ((!(State & (INSERT + CMDLINE)) || arrow_used)
-	    && scriptin[curscript] == NULL && no_u_sync == 0)
-	u_sync();
+					       && scriptin[curscript] == NULL)
+	u_sync(FALSE);
 }
 
 /*
diff --git a/src/gui.c b/src/gui.c
index 208b72154fdce6f4c66f043214dcbc16dd1734db..3d677dba5eee563fd05804c1249d88be4e67fb94 100644
--- a/src/gui.c
+++ b/src/gui.c
@@ -4931,8 +4931,7 @@ gui_do_findrepl(flags, find_text, repl_text, down)
 		if (u_save_cursor() == OK)
 		{
 		    /* A button was pressed thus undo should be synced. */
-		    if (no_u_sync == 0)
-			u_sync();
+		    u_sync(FALSE);
 
 		    del_bytes((long)(regmatch.endp[0] - regmatch.startp[0]),
 								FALSE, FALSE);
@@ -4948,8 +4947,7 @@ gui_do_findrepl(flags, find_text, repl_text, down)
     if (type == FRD_REPLACEALL)
     {
 	/* A button was pressed, thus undo should be synced. */
-	if (no_u_sync == 0)
-	    u_sync();
+	u_sync(FALSE);
 	do_cmdline_cmd(ga.ga_data);
     }
     else
diff --git a/src/option.c b/src/option.c
index 8ed4f3469f127f33f7b703df53f070c1341258a7..0a4d9c7dd95bcafc6eabeb0c4d9354477dc38ae9 100644
--- a/src/option.c
+++ b/src/option.c
@@ -2811,7 +2811,7 @@ static char *(p_bsdir_values[]) = {"current", "last", "buffer", NULL};
 #ifdef FEAT_SCROLLBIND
 static char *(p_scbopt_values[]) = {"ver", "hor", "jump", NULL};
 #endif
-static char *(p_swb_values[]) = {"useopen", "split", NULL};
+static char *(p_swb_values[]) = {"useopen", "usetab", "split", NULL};
 static char *(p_debug_values[]) = {"msg", "beep", NULL};
 #ifdef FEAT_VERTSPLIT
 static char *(p_ead_values[]) = {"both", "ver", "hor", NULL};
@@ -7767,7 +7767,7 @@ set_num_option(opt_idx, varp, value, errbuf, errbuflen, opt_flags)
     {
 	/* use the old value, otherwise u_sync() may not work properly */
 	p_ul = old_value;
-	u_sync();
+	u_sync(TRUE);
 	p_ul = value;
     }
 
diff --git a/src/popupmnu.c b/src/popupmnu.c
index 9f1fae4fb02f8292b55e42c5b3ce3548ced9a10b..a3324772cba3972daddcb7e20a69c87a3884b0c7 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -427,18 +427,24 @@ pum_set_selected(n)
 		    while (!bufempty())
 			ml_delete((linenr_T)1, FALSE);
 		}
-		else if ((res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0))
-									== OK)
+		else
 		{
-		    /* Edit a new, empty buffer. Set options for a "wipeout"
-		     * buffer. */
-		    set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
-		    set_option_value((char_u *)"bt", 0L, (char_u *)"nofile",
-								   OPT_LOCAL);
-		    set_option_value((char_u *)"bh", 0L, (char_u *)"wipe",
-								   OPT_LOCAL);
-		    set_option_value((char_u *)"diff", 0L, (char_u *)"",
-								   OPT_LOCAL);
+		    /* Don't want to sync undo in the current buffer. */
+		    ++no_u_sync;
+		    res = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, 0);
+		    --no_u_sync;
+		    if (res == OK)
+		    {
+			/* Edit a new, empty buffer. Set options for a "wipeout"
+			 * buffer. */
+			set_option_value((char_u *)"swf", 0L, NULL, OPT_LOCAL);
+			set_option_value((char_u *)"bt", 0L,
+					       (char_u *)"nofile", OPT_LOCAL);
+			set_option_value((char_u *)"bh", 0L,
+						 (char_u *)"wipe", OPT_LOCAL);
+			set_option_value((char_u *)"diff", 0L,
+						     (char_u *)"", OPT_LOCAL);
+		    }
 		}
 		if (res == OK)
 		{
diff --git a/src/proto/ex_cmds.pro b/src/proto/ex_cmds.pro
index 4382e6530ab876adc52e8dfe89bc441bd720d55c..7582dffab1989541a5d45e90165817c4618f2cf6 100644
--- a/src/proto/ex_cmds.pro
+++ b/src/proto/ex_cmds.pro
@@ -1,59 +1,59 @@
 /* ex_cmds.c */
-void do_ascii __ARGS((exarg_T *eap));
-void ex_align __ARGS((exarg_T *eap));
-void ex_sort __ARGS((exarg_T *eap));
-void ex_retab __ARGS((exarg_T *eap));
-int do_move __ARGS((linenr_T line1, linenr_T line2, linenr_T dest));
-void ex_copy __ARGS((linenr_T line1, linenr_T line2, linenr_T n));
-void free_prev_shellcmd __ARGS((void));
-void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in, int do_out));
-void do_shell __ARGS((char_u *cmd, int flags));
-char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
-void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
-int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
-int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit));
-void write_viminfo __ARGS((char_u *file, int forceit));
-int viminfo_readline __ARGS((vir_T *virp));
-char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
-void viminfo_writestring __ARGS((FILE *fd, char_u *p));
-void do_fixdel __ARGS((exarg_T *eap));
-void print_line_no_prefix __ARGS((linenr_T lnum, int use_number, int list));
-void print_line __ARGS((linenr_T lnum, int use_number, int list));
-void ex_file __ARGS((exarg_T *eap));
-void ex_update __ARGS((exarg_T *eap));
-void ex_write __ARGS((exarg_T *eap));
-int do_write __ARGS((exarg_T *eap));
-void ex_wnext __ARGS((exarg_T *eap));
-void do_wqall __ARGS((exarg_T *eap));
-int not_writing __ARGS((void));
-int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
-int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags));
-void ex_append __ARGS((exarg_T *eap));
-void ex_change __ARGS((exarg_T *eap));
-void ex_z __ARGS((exarg_T *eap));
-int check_restricted __ARGS((void));
-int check_secure __ARGS((void));
-void do_sub __ARGS((exarg_T *eap));
-int do_sub_msg __ARGS((int count_only));
-void ex_global __ARGS((exarg_T *eap));
-void global_exe __ARGS((char_u *cmd));
-int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
-void write_viminfo_sub_string __ARGS((FILE *fp));
-void free_old_sub __ARGS((void));
-int prepare_tagpreview __ARGS((int undo_sync));
-void ex_help __ARGS((exarg_T *eap));
-char_u *check_help_lang __ARGS((char_u *arg));
-int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case));
-int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches, int keep_lang));
-void fix_help_buffer __ARGS((void));
-void ex_exusage __ARGS((exarg_T *eap));
-void ex_viusage __ARGS((exarg_T *eap));
-void ex_helptags __ARGS((exarg_T *eap));
-void ex_sign __ARGS((exarg_T *eap));
-void sign_gui_started __ARGS((void));
-int sign_get_attr __ARGS((int typenr, int line));
-char_u *sign_get_text __ARGS((int typenr));
-void *sign_get_image __ARGS((int typenr));
-char_u *sign_typenr2name __ARGS((int typenr));
-void ex_drop __ARGS((exarg_T *eap));
+extern void do_ascii __ARGS((exarg_T *eap));
+extern void ex_align __ARGS((exarg_T *eap));
+extern void ex_sort __ARGS((exarg_T *eap));
+extern void ex_retab __ARGS((exarg_T *eap));
+extern int do_move __ARGS((linenr_T line1, linenr_T line2, linenr_T dest));
+extern void ex_copy __ARGS((linenr_T line1, linenr_T line2, linenr_T n));
+extern void free_prev_shellcmd __ARGS((void));
+extern void do_bang __ARGS((int addr_count, exarg_T *eap, int forceit, int do_in, int do_out));
+extern void do_shell __ARGS((char_u *cmd, int flags));
+extern char_u *make_filter_cmd __ARGS((char_u *cmd, char_u *itmp, char_u *otmp));
+extern void append_redir __ARGS((char_u *buf, char_u *opt, char_u *fname));
+extern int viminfo_error __ARGS((char *errnum, char *message, char_u *line));
+extern int read_viminfo __ARGS((char_u *file, int want_info, int want_marks, int forceit));
+extern void write_viminfo __ARGS((char_u *file, int forceit));
+extern int viminfo_readline __ARGS((vir_T *virp));
+extern char_u *viminfo_readstring __ARGS((vir_T *virp, int off, int convert));
+extern void viminfo_writestring __ARGS((FILE *fd, char_u *p));
+extern void do_fixdel __ARGS((exarg_T *eap));
+extern void print_line_no_prefix __ARGS((linenr_T lnum, int use_number, int list));
+extern void print_line __ARGS((linenr_T lnum, int use_number, int list));
+extern void ex_file __ARGS((exarg_T *eap));
+extern void ex_update __ARGS((exarg_T *eap));
+extern void ex_write __ARGS((exarg_T *eap));
+extern int do_write __ARGS((exarg_T *eap));
+extern void ex_wnext __ARGS((exarg_T *eap));
+extern void do_wqall __ARGS((exarg_T *eap));
+extern int not_writing __ARGS((void));
+extern int getfile __ARGS((int fnum, char_u *ffname, char_u *sfname, int setpm, linenr_T lnum, int forceit));
+extern int do_ecmd __ARGS((int fnum, char_u *ffname, char_u *sfname, exarg_T *eap, linenr_T newlnum, int flags));
+extern void ex_append __ARGS((exarg_T *eap));
+extern void ex_change __ARGS((exarg_T *eap));
+extern void ex_z __ARGS((exarg_T *eap));
+extern int check_restricted __ARGS((void));
+extern int check_secure __ARGS((void));
+extern void do_sub __ARGS((exarg_T *eap));
+extern int do_sub_msg __ARGS((int count_only));
+extern void ex_global __ARGS((exarg_T *eap));
+extern void global_exe __ARGS((char_u *cmd));
+extern int read_viminfo_sub_string __ARGS((vir_T *virp, int force));
+extern void write_viminfo_sub_string __ARGS((FILE *fp));
+extern void free_old_sub __ARGS((void));
+extern int prepare_tagpreview __ARGS((int undo_sync));
+extern void ex_help __ARGS((exarg_T *eap));
+extern char_u *check_help_lang __ARGS((char_u *arg));
+extern int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case));
+extern int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches, int keep_lang));
+extern void fix_help_buffer __ARGS((void));
+extern void ex_exusage __ARGS((exarg_T *eap));
+extern void ex_viusage __ARGS((exarg_T *eap));
+extern void ex_helptags __ARGS((exarg_T *eap));
+extern void ex_sign __ARGS((exarg_T *eap));
+extern void sign_gui_started __ARGS((void));
+extern int sign_get_attr __ARGS((int typenr, int line));
+extern char_u *sign_get_text __ARGS((int typenr));
+extern void *sign_get_image __ARGS((int typenr));
+extern char_u *sign_typenr2name __ARGS((int typenr));
+extern void ex_drop __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
diff --git a/src/proto/ex_getln.pro b/src/proto/ex_getln.pro
index 9ccb42fce6af8c7a536043971298f07a82ab9b8d..e6b5b87bb577d1297c60bb016ac9ab1a9f660556 100644
--- a/src/proto/ex_getln.pro
+++ b/src/proto/ex_getln.pro
@@ -1,54 +1,54 @@
 /* ex_getln.c */
-char_u *getcmdline __ARGS((int firstc, long count, int indent));
-char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg));
-int text_locked __ARGS((void));
-void text_locked_msg __ARGS((void));
-int curbuf_locked __ARGS((void));
-char_u *getexline __ARGS((int c, void *dummy, int indent));
-char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
-int cmdline_overstrike __ARGS((void));
-int cmdline_at_end __ARGS((void));
-colnr_T cmdline_getvcol_cursor __ARGS((void));
-void free_cmdline_buf __ARGS((void));
-void putcmdline __ARGS((int c, int shift));
-void unputcmdline __ARGS((void));
-int put_on_cmdline __ARGS((char_u *str, int len, int redraw));
-void cmdline_paste_str __ARGS((char_u *s, int literally));
-void redrawcmdline __ARGS((void));
-void redrawcmd __ARGS((void));
-void compute_cmdrow __ARGS((void));
-void gotocmdline __ARGS((int clr));
-char_u *ExpandOne __ARGS((expand_T *xp, char_u *str, char_u *orig, int options, int mode));
-void ExpandInit __ARGS((expand_T *xp));
-void ExpandCleanup __ARGS((expand_T *xp));
-void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
-void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
-char_u *sm_gettail __ARGS((char_u *s));
-char_u *addstar __ARGS((char_u *fname, int len, int context));
-void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
-int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
-int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
-char_u *globpath __ARGS((char_u *path, char_u *file));
-void init_history __ARGS((void));
-int get_histtype __ARGS((char_u *name));
-void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
-int get_history_idx __ARGS((int histype));
-char_u *get_cmdline_str __ARGS((void));
-int get_cmdline_pos __ARGS((void));
-int set_cmdline_pos __ARGS((int pos));
-int get_cmdline_type __ARGS((void));
-char_u *get_history_entry __ARGS((int histype, int idx));
-int clr_history __ARGS((int histype));
-int del_history_entry __ARGS((int histype, char_u *str));
-int del_history_idx __ARGS((int histype, int idx));
-void remove_key_from_history __ARGS((void));
-int get_list_range __ARGS((char_u **str, int *num1, int *num2));
-void ex_history __ARGS((exarg_T *eap));
-void prepare_viminfo_history __ARGS((int asklen));
-int read_viminfo_history __ARGS((vir_T *virp));
-void finish_viminfo_history __ARGS((void));
-void write_viminfo_history __ARGS((FILE *fp));
-void cmd_pchar __ARGS((int c, int offset));
-int cmd_gchar __ARGS((int offset));
-char_u *script_get __ARGS((exarg_T *eap, char_u *cmd));
+extern char_u *getcmdline __ARGS((int firstc, long count, int indent));
+extern char_u *getcmdline_prompt __ARGS((int firstc, char_u *prompt, int attr, int xp_context, char_u *xp_arg));
+extern int text_locked __ARGS((void));
+extern void text_locked_msg __ARGS((void));
+extern int curbuf_locked __ARGS((void));
+extern char_u *getexline __ARGS((int c, void *dummy, int indent));
+extern char_u *getexmodeline __ARGS((int promptc, void *dummy, int indent));
+extern int cmdline_overstrike __ARGS((void));
+extern int cmdline_at_end __ARGS((void));
+extern colnr_T cmdline_getvcol_cursor __ARGS((void));
+extern void free_cmdline_buf __ARGS((void));
+extern void putcmdline __ARGS((int c, int shift));
+extern void unputcmdline __ARGS((void));
+extern int put_on_cmdline __ARGS((char_u *str, int len, int redraw));
+extern void cmdline_paste_str __ARGS((char_u *s, int literally));
+extern void redrawcmdline __ARGS((void));
+extern void redrawcmd __ARGS((void));
+extern void compute_cmdrow __ARGS((void));
+extern void gotocmdline __ARGS((int clr));
+extern char_u *ExpandOne __ARGS((expand_T *xp, char_u *str, char_u *orig, int options, int mode));
+extern void ExpandInit __ARGS((expand_T *xp));
+extern void ExpandCleanup __ARGS((expand_T *xp));
+extern void ExpandEscape __ARGS((expand_T *xp, char_u *str, int numfiles, char_u **files, int options));
+extern void tilde_replace __ARGS((char_u *orig_pat, int num_files, char_u **files));
+extern char_u *sm_gettail __ARGS((char_u *s));
+extern char_u *addstar __ARGS((char_u *fname, int len, int context));
+extern void set_cmd_context __ARGS((expand_T *xp, char_u *str, int len, int col));
+extern int expand_cmdline __ARGS((expand_T *xp, char_u *str, int col, int *matchcount, char_u ***matches));
+extern int ExpandGeneric __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file, char_u *((*func)(expand_T *, int))));
+extern char_u *globpath __ARGS((char_u *path, char_u *file));
+extern void init_history __ARGS((void));
+extern int get_histtype __ARGS((char_u *name));
+extern void add_to_history __ARGS((int histype, char_u *new_entry, int in_map, int sep));
+extern int get_history_idx __ARGS((int histype));
+extern char_u *get_cmdline_str __ARGS((void));
+extern int get_cmdline_pos __ARGS((void));
+extern int set_cmdline_pos __ARGS((int pos));
+extern int get_cmdline_type __ARGS((void));
+extern char_u *get_history_entry __ARGS((int histype, int idx));
+extern int clr_history __ARGS((int histype));
+extern int del_history_entry __ARGS((int histype, char_u *str));
+extern int del_history_idx __ARGS((int histype, int idx));
+extern void remove_key_from_history __ARGS((void));
+extern int get_list_range __ARGS((char_u **str, int *num1, int *num2));
+extern void ex_history __ARGS((exarg_T *eap));
+extern void prepare_viminfo_history __ARGS((int asklen));
+extern int read_viminfo_history __ARGS((vir_T *virp));
+extern void finish_viminfo_history __ARGS((void));
+extern void write_viminfo_history __ARGS((FILE *fp));
+extern void cmd_pchar __ARGS((int c, int offset));
+extern int cmd_gchar __ARGS((int offset));
+extern char_u *script_get __ARGS((exarg_T *eap, char_u *cmd));
 /* vim: set ft=c : */
diff --git a/src/proto/gui_motif.pro b/src/proto/gui_motif.pro
index 3e08ec9dbd8bcc0ebf745dd988eb48f0067ecd82..57717b90ec05fab07192d755999f2028fd92882d 100644
--- a/src/proto/gui_motif.pro
+++ b/src/proto/gui_motif.pro
@@ -1,46 +1,46 @@
 /* gui_motif.c */
-void gui_x11_create_widgets __ARGS((void));
-void gui_x11_destroy_widgets __ARGS((void));
-void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
-void gui_x11_set_back_color __ARGS((void));
-void manage_centered __ARGS((Widget dialog_child));
-XmFontList gui_motif_create_fontlist __ARGS((XFontStruct *font));
-XmFontList gui_motif_fontset2fontlist __ARGS((XFontSet *fontset));
-void gui_mch_enable_menu __ARGS((int flag));
-void gui_motif_set_mnemonics __ARGS((int enable));
-void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
-void gui_mch_toggle_tearoffs __ARGS((int enable));
-int gui_mch_text_area_extra_height __ARGS((void));
-void gui_mch_compute_menu_height __ARGS((Widget id));
-void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
-void gui_motif_update_mousemodel __ARGS((vimmenu_T *menu));
-void gui_mch_new_menu_colors __ARGS((void));
-void gui_mch_new_menu_font __ARGS((void));
-void gui_mch_new_tooltip_font __ARGS((void));
-void gui_mch_new_tooltip_colors __ARGS((void));
-void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
-void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
-void gui_mch_def_colors __ARGS((void));
-void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
-void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
-void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
-void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
-void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
-void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
-Window gui_x11_get_wid __ARGS((void));
-char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
-int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
-void gui_mch_enable_footer __ARGS((int showit));
-void gui_mch_set_footer __ARGS((char_u *s));
-void gui_mch_show_toolbar __ARGS((int showit));
-int gui_mch_compute_toolbar_height __ARGS((void));
-void motif_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp));
-void gui_mch_show_tabline __ARGS((int showit));
-int gui_mch_showing_tabline __ARGS((void));
-void gui_mch_update_tabline __ARGS((void));
-void gui_mch_set_curtab __ARGS((int nr));
-void gui_motif_menu_fontlist __ARGS((Widget id));
-void gui_mch_find_dialog __ARGS((exarg_T *eap));
-void gui_mch_replace_dialog __ARGS((exarg_T *eap));
-void gui_motif_synch_fonts __ARGS((void));
+extern void gui_x11_create_widgets __ARGS((void));
+extern void gui_x11_destroy_widgets __ARGS((void));
+extern void gui_mch_set_text_area_pos __ARGS((int x, int y, int w, int h));
+extern void gui_x11_set_back_color __ARGS((void));
+extern void manage_centered __ARGS((Widget dialog_child));
+extern XmFontList gui_motif_create_fontlist __ARGS((XFontStruct *font));
+extern XmFontList gui_motif_fontset2fontlist __ARGS((XFontSet *fontset));
+extern void gui_mch_enable_menu __ARGS((int flag));
+extern void gui_motif_set_mnemonics __ARGS((int enable));
+extern void gui_mch_add_menu __ARGS((vimmenu_T *menu, int idx));
+extern void gui_mch_toggle_tearoffs __ARGS((int enable));
+extern int gui_mch_text_area_extra_height __ARGS((void));
+extern void gui_mch_compute_menu_height __ARGS((Widget id));
+extern void gui_mch_add_menu_item __ARGS((vimmenu_T *menu, int idx));
+extern void gui_motif_update_mousemodel __ARGS((vimmenu_T *menu));
+extern void gui_mch_new_menu_colors __ARGS((void));
+extern void gui_mch_new_menu_font __ARGS((void));
+extern void gui_mch_new_tooltip_font __ARGS((void));
+extern void gui_mch_new_tooltip_colors __ARGS((void));
+extern void gui_mch_destroy_menu __ARGS((vimmenu_T *menu));
+extern void gui_mch_show_popupmenu __ARGS((vimmenu_T *menu));
+extern void gui_mch_def_colors __ARGS((void));
+extern void gui_mch_set_scrollbar_thumb __ARGS((scrollbar_T *sb, long val, long size, long max));
+extern void gui_mch_set_scrollbar_pos __ARGS((scrollbar_T *sb, int x, int y, int w, int h));
+extern void gui_mch_enable_scrollbar __ARGS((scrollbar_T *sb, int flag));
+extern void gui_mch_create_scrollbar __ARGS((scrollbar_T *sb, int orient));
+extern void gui_mch_destroy_scrollbar __ARGS((scrollbar_T *sb));
+extern void gui_mch_set_scrollbar_colors __ARGS((scrollbar_T *sb));
+extern Window gui_x11_get_wid __ARGS((void));
+extern char_u *gui_mch_browse __ARGS((int saving, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter));
+extern int gui_mch_dialog __ARGS((int type, char_u *title, char_u *message, char_u *button_names, int dfltbutton, char_u *textfield));
+extern void gui_mch_enable_footer __ARGS((int showit));
+extern void gui_mch_set_footer __ARGS((char_u *s));
+extern void gui_mch_show_toolbar __ARGS((int showit));
+extern int gui_mch_compute_toolbar_height __ARGS((void));
+extern void motif_get_toolbar_colors __ARGS((Pixel *bgp, Pixel *fgp, Pixel *bsp, Pixel *tsp, Pixel *hsp));
+extern void gui_mch_show_tabline __ARGS((int showit));
+extern int gui_mch_showing_tabline __ARGS((void));
+extern void gui_mch_update_tabline __ARGS((void));
+extern void gui_mch_set_curtab __ARGS((int nr));
+extern void gui_motif_menu_fontlist __ARGS((Widget id));
+extern void gui_mch_find_dialog __ARGS((exarg_T *eap));
+extern void gui_mch_replace_dialog __ARGS((exarg_T *eap));
+extern void gui_motif_synch_fonts __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/misc1.pro b/src/proto/misc1.pro
index e9bc32c559116368368aaaf2cf88905be8a8cdde..7d804b99d9fcf22064e5caccf89a90abe3e8bb9c 100644
--- a/src/proto/misc1.pro
+++ b/src/proto/misc1.pro
@@ -1,95 +1,95 @@
 /* misc1.c */
-int get_indent __ARGS((void));
-int get_indent_lnum __ARGS((linenr_T lnum));
-int get_indent_buf __ARGS((buf_T *buf, linenr_T lnum));
-int get_indent_str __ARGS((char_u *ptr, int ts));
-int set_indent __ARGS((int size, int flags));
-int get_number_indent __ARGS((linenr_T lnum));
-int open_line __ARGS((int dir, int flags, int old_indent));
-int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
-int plines __ARGS((linenr_T lnum));
-int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
-int plines_nofill __ARGS((linenr_T lnum));
-int plines_win_nofill __ARGS((win_T *wp, linenr_T lnum, int winheight));
-int plines_win_nofold __ARGS((win_T *wp, linenr_T lnum));
-int plines_win_col __ARGS((win_T *wp, linenr_T lnum, long column));
-int plines_m_win __ARGS((win_T *wp, linenr_T first, linenr_T last));
-void ins_bytes __ARGS((char_u *p));
-void ins_bytes_len __ARGS((char_u *p, int len));
-void ins_char __ARGS((int c));
-void ins_char_bytes __ARGS((char_u *buf, int charlen));
-void ins_str __ARGS((char_u *s));
-int del_char __ARGS((int fixpos));
-int del_chars __ARGS((long count, int fixpos));
-int del_bytes __ARGS((long count, int fixpos_arg, int use_delcombine));
-int truncate_line __ARGS((int fixpos));
-void del_lines __ARGS((long nlines, int undo));
-int gchar_pos __ARGS((pos_T *pos));
-int gchar_cursor __ARGS((void));
-void pchar_cursor __ARGS((int c));
-int inindent __ARGS((int extra));
-char_u *skip_to_option_part __ARGS((char_u *p));
-void changed __ARGS((void));
-void changed_bytes __ARGS((linenr_T lnum, colnr_T col));
-void appended_lines __ARGS((linenr_T lnum, long count));
-void appended_lines_mark __ARGS((linenr_T lnum, long count));
-void deleted_lines __ARGS((linenr_T lnum, long count));
-void deleted_lines_mark __ARGS((linenr_T lnum, long count));
-void changed_lines __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
-void unchanged __ARGS((buf_T *buf, int ff));
-void check_status __ARGS((buf_T *buf));
-void change_warning __ARGS((int col));
-int ask_yesno __ARGS((char_u *str, int direct));
-int get_keystroke __ARGS((void));
-int get_number __ARGS((int colon, int *mouse_used));
-int prompt_for_number __ARGS((int *mouse_used));
-void msgmore __ARGS((long n));
-void beep_flush __ARGS((void));
-void vim_beep __ARGS((void));
-void init_homedir __ARGS((void));
-void free_homedir __ARGS((void));
-void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
-void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr));
-char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
-char_u *expand_env_save __ARGS((char_u *src));
-void vim_setenv __ARGS((char_u *name, char_u *val));
-char_u *get_env_name __ARGS((expand_T *xp, int idx));
-void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
-char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
-int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
-char_u *gettail __ARGS((char_u *fname));
-char_u *gettail_sep __ARGS((char_u *fname));
-char_u *getnextcomp __ARGS((char_u *fname));
-char_u *get_past_head __ARGS((char_u *path));
-int vim_ispathsep __ARGS((int c));
-int vim_ispathlistsep __ARGS((int c));
-void shorten_dir __ARGS((char_u *str));
-int dir_of_file_exists __ARGS((char_u *fname));
-int vim_fnamecmp __ARGS((char_u *x, char_u *y));
-int vim_fnamencmp __ARGS((char_u *x, char_u *y, size_t len));
-char_u *concat_fnames __ARGS((char_u *fname1, char_u *fname2, int sep));
-char_u *concat_str __ARGS((char_u *str1, char_u *str2));
-void add_pathsep __ARGS((char_u *p));
-char_u *FullName_save __ARGS((char_u *fname, int force));
-pos_T *find_start_comment __ARGS((int ind_maxcomment));
-void do_c_expr_indent __ARGS((void));
-int cin_islabel __ARGS((int ind_maxcomment));
-int cin_iscase __ARGS((char_u *s));
-int cin_isscopedecl __ARGS((char_u *s));
-int get_c_indent __ARGS((void));
-int get_expr_indent __ARGS((void));
-int get_lisp_indent __ARGS((void));
-void prepare_to_exit __ARGS((void));
-void preserve_exit __ARGS((void));
-int vim_fexists __ARGS((char_u *fname));
-void line_breakcheck __ARGS((void));
-void fast_breakcheck __ARGS((void));
-int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-int match_suffix __ARGS((char_u *fname));
-int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
-int gen_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
-void addfile __ARGS((garray_T *gap, char_u *f, int flags));
-char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
-void FreeWild __ARGS((int count, char_u **files));
-int goto_im __ARGS((void));
+extern int get_indent __ARGS((void));
+extern int get_indent_lnum __ARGS((linenr_T lnum));
+extern int get_indent_buf __ARGS((buf_T *buf, linenr_T lnum));
+extern int get_indent_str __ARGS((char_u *ptr, int ts));
+extern int set_indent __ARGS((int size, int flags));
+extern int get_number_indent __ARGS((linenr_T lnum));
+extern int open_line __ARGS((int dir, int flags, int old_indent));
+extern int get_leader_len __ARGS((char_u *line, char_u **flags, int backward));
+extern int plines __ARGS((linenr_T lnum));
+extern int plines_win __ARGS((win_T *wp, linenr_T lnum, int winheight));
+extern int plines_nofill __ARGS((linenr_T lnum));
+extern int plines_win_nofill __ARGS((win_T *wp, linenr_T lnum, int winheight));
+extern int plines_win_nofold __ARGS((win_T *wp, linenr_T lnum));
+extern int plines_win_col __ARGS((win_T *wp, linenr_T lnum, long column));
+extern int plines_m_win __ARGS((win_T *wp, linenr_T first, linenr_T last));
+extern void ins_bytes __ARGS((char_u *p));
+extern void ins_bytes_len __ARGS((char_u *p, int len));
+extern void ins_char __ARGS((int c));
+extern void ins_char_bytes __ARGS((char_u *buf, int charlen));
+extern void ins_str __ARGS((char_u *s));
+extern int del_char __ARGS((int fixpos));
+extern int del_chars __ARGS((long count, int fixpos));
+extern int del_bytes __ARGS((long count, int fixpos_arg, int use_delcombine));
+extern int truncate_line __ARGS((int fixpos));
+extern void del_lines __ARGS((long nlines, int undo));
+extern int gchar_pos __ARGS((pos_T *pos));
+extern int gchar_cursor __ARGS((void));
+extern void pchar_cursor __ARGS((int c));
+extern int inindent __ARGS((int extra));
+extern char_u *skip_to_option_part __ARGS((char_u *p));
+extern void changed __ARGS((void));
+extern void changed_bytes __ARGS((linenr_T lnum, colnr_T col));
+extern void appended_lines __ARGS((linenr_T lnum, long count));
+extern void appended_lines_mark __ARGS((linenr_T lnum, long count));
+extern void deleted_lines __ARGS((linenr_T lnum, long count));
+extern void deleted_lines_mark __ARGS((linenr_T lnum, long count));
+extern void changed_lines __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
+extern void unchanged __ARGS((buf_T *buf, int ff));
+extern void check_status __ARGS((buf_T *buf));
+extern void change_warning __ARGS((int col));
+extern int ask_yesno __ARGS((char_u *str, int direct));
+extern int get_keystroke __ARGS((void));
+extern int get_number __ARGS((int colon, int *mouse_used));
+extern int prompt_for_number __ARGS((int *mouse_used));
+extern void msgmore __ARGS((long n));
+extern void beep_flush __ARGS((void));
+extern void vim_beep __ARGS((void));
+extern void init_homedir __ARGS((void));
+extern void free_homedir __ARGS((void));
+extern void expand_env __ARGS((char_u *src, char_u *dst, int dstlen));
+extern void expand_env_esc __ARGS((char_u *srcp, char_u *dst, int dstlen, int esc, char_u *startstr));
+extern char_u *vim_getenv __ARGS((char_u *name, int *mustfree));
+extern char_u *expand_env_save __ARGS((char_u *src));
+extern void vim_setenv __ARGS((char_u *name, char_u *val));
+extern char_u *get_env_name __ARGS((expand_T *xp, int idx));
+extern void home_replace __ARGS((buf_T *buf, char_u *src, char_u *dst, int dstlen, int one));
+extern char_u *home_replace_save __ARGS((buf_T *buf, char_u *src));
+extern int fullpathcmp __ARGS((char_u *s1, char_u *s2, int checkname));
+extern char_u *gettail __ARGS((char_u *fname));
+extern char_u *gettail_sep __ARGS((char_u *fname));
+extern char_u *getnextcomp __ARGS((char_u *fname));
+extern char_u *get_past_head __ARGS((char_u *path));
+extern int vim_ispathsep __ARGS((int c));
+extern int vim_ispathlistsep __ARGS((int c));
+extern void shorten_dir __ARGS((char_u *str));
+extern int dir_of_file_exists __ARGS((char_u *fname));
+extern int vim_fnamecmp __ARGS((char_u *x, char_u *y));
+extern int vim_fnamencmp __ARGS((char_u *x, char_u *y, size_t len));
+extern char_u *concat_fnames __ARGS((char_u *fname1, char_u *fname2, int sep));
+extern char_u *concat_str __ARGS((char_u *str1, char_u *str2));
+extern void add_pathsep __ARGS((char_u *p));
+extern char_u *FullName_save __ARGS((char_u *fname, int force));
+extern pos_T *find_start_comment __ARGS((int ind_maxcomment));
+extern void do_c_expr_indent __ARGS((void));
+extern int cin_islabel __ARGS((int ind_maxcomment));
+extern int cin_iscase __ARGS((char_u *s));
+extern int cin_isscopedecl __ARGS((char_u *s));
+extern int get_c_indent __ARGS((void));
+extern int get_expr_indent __ARGS((void));
+extern int get_lisp_indent __ARGS((void));
+extern void prepare_to_exit __ARGS((void));
+extern void preserve_exit __ARGS((void));
+extern int vim_fexists __ARGS((char_u *fname));
+extern void line_breakcheck __ARGS((void));
+extern void fast_breakcheck __ARGS((void));
+extern int expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+extern int match_suffix __ARGS((char_u *fname));
+extern int unix_expandpath __ARGS((garray_T *gap, char_u *path, int wildoff, int flags, int didstar));
+extern int gen_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags));
+extern void addfile __ARGS((garray_T *gap, char_u *f, int flags));
+extern char_u *get_cmd_output __ARGS((char_u *cmd, char_u *infile, int flags));
+extern void FreeWild __ARGS((int count, char_u **files));
+extern int goto_im __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/option.pro b/src/proto/option.pro
index bb50ef14af9bdff420fc531b7a041a51763097ff..cf31dca7d92986b6966cfca54b823f04a777595a 100644
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -1,56 +1,56 @@
 /* option.c */
-void set_init_1 __ARGS((void));
-void set_string_default __ARGS((char *name, char_u *val));
-void set_number_default __ARGS((char *name, long val));
-void free_all_options __ARGS((void));
-void set_init_2 __ARGS((void));
-void set_init_3 __ARGS((void));
-void set_helplang_default __ARGS((char_u *lang));
-void init_gui_options __ARGS((void));
-void set_title_defaults __ARGS((void));
-int do_set __ARGS((char_u *arg, int opt_flags));
-void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
-int get_viminfo_parameter __ARGS((int type));
-char_u *find_viminfo_parameter __ARGS((int type));
-void check_options __ARGS((void));
-void check_buf_options __ARGS((buf_T *buf));
-void free_string_option __ARGS((char_u *p));
-void clear_string_option __ARGS((char_u **pp));
-void set_term_option_alloced __ARGS((char_u **p));
-int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
-void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid));
-char_u *check_stl_option __ARGS((char_u *s));
-int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags));
-void set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags));
-char_u *get_term_code __ARGS((char_u *tname));
-char_u *get_highlight_default __ARGS((void));
-char_u *get_encoding_default __ARGS((void));
-int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
-int makefoldset __ARGS((FILE *fd));
-void clear_termoptions __ARGS((void));
-void free_termoptions __ARGS((void));
-void set_term_defaults __ARGS((void));
-void comp_col __ARGS((void));
-char_u *get_equalprg __ARGS((void));
-void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
-void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
-void check_win_options __ARGS((win_T *win));
-void check_winopt __ARGS((winopt_T *wop));
-void clear_winopt __ARGS((winopt_T *wop));
-void buf_copy_options __ARGS((buf_T *buf, int flags));
-void reset_modifiable __ARGS((void));
-void set_iminsert_global __ARGS((void));
-void set_imsearch_global __ARGS((void));
-void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
-int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
-int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
-int has_format_option __ARGS((int x));
-int shortmess __ARGS((int x));
-void vimrc_found __ARGS((char_u *fname, char_u *envname));
-void change_compatible __ARGS((int on));
-int option_was_set __ARGS((char_u *name));
-int can_bs __ARGS((int what));
-void save_file_ff __ARGS((buf_T *buf));
-int file_ff_differs __ARGS((buf_T *buf));
-int check_ff_value __ARGS((char_u *p));
+extern void set_init_1 __ARGS((void));
+extern void set_string_default __ARGS((char *name, char_u *val));
+extern void set_number_default __ARGS((char *name, long val));
+extern void free_all_options __ARGS((void));
+extern void set_init_2 __ARGS((void));
+extern void set_init_3 __ARGS((void));
+extern void set_helplang_default __ARGS((char_u *lang));
+extern void init_gui_options __ARGS((void));
+extern void set_title_defaults __ARGS((void));
+extern int do_set __ARGS((char_u *arg, int opt_flags));
+extern void set_options_bin __ARGS((int oldval, int newval, int opt_flags));
+extern int get_viminfo_parameter __ARGS((int type));
+extern char_u *find_viminfo_parameter __ARGS((int type));
+extern void check_options __ARGS((void));
+extern void check_buf_options __ARGS((buf_T *buf));
+extern void free_string_option __ARGS((char_u *p));
+extern void clear_string_option __ARGS((char_u **pp));
+extern void set_term_option_alloced __ARGS((char_u **p));
+extern int was_set_insecurely __ARGS((char_u *opt, int opt_flags));
+extern void set_string_option_direct __ARGS((char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid));
+extern char_u *check_stl_option __ARGS((char_u *s));
+extern int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags));
+extern void set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags));
+extern char_u *get_term_code __ARGS((char_u *tname));
+extern char_u *get_highlight_default __ARGS((void));
+extern char_u *get_encoding_default __ARGS((void));
+extern int makeset __ARGS((FILE *fd, int opt_flags, int local_only));
+extern int makefoldset __ARGS((FILE *fd));
+extern void clear_termoptions __ARGS((void));
+extern void free_termoptions __ARGS((void));
+extern void set_term_defaults __ARGS((void));
+extern void comp_col __ARGS((void));
+extern char_u *get_equalprg __ARGS((void));
+extern void win_copy_options __ARGS((win_T *wp_from, win_T *wp_to));
+extern void copy_winopt __ARGS((winopt_T *from, winopt_T *to));
+extern void check_win_options __ARGS((win_T *win));
+extern void check_winopt __ARGS((winopt_T *wop));
+extern void clear_winopt __ARGS((winopt_T *wop));
+extern void buf_copy_options __ARGS((buf_T *buf, int flags));
+extern void reset_modifiable __ARGS((void));
+extern void set_iminsert_global __ARGS((void));
+extern void set_imsearch_global __ARGS((void));
+extern void set_context_in_set_cmd __ARGS((expand_T *xp, char_u *arg, int opt_flags));
+extern int ExpandSettings __ARGS((expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file));
+extern int ExpandOldSetting __ARGS((int *num_file, char_u ***file));
+extern int has_format_option __ARGS((int x));
+extern int shortmess __ARGS((int x));
+extern void vimrc_found __ARGS((char_u *fname, char_u *envname));
+extern void change_compatible __ARGS((int on));
+extern int option_was_set __ARGS((char_u *name));
+extern int can_bs __ARGS((int what));
+extern void save_file_ff __ARGS((buf_T *buf));
+extern int file_ff_differs __ARGS((buf_T *buf));
+extern int check_ff_value __ARGS((char_u *p));
 /* vim: set ft=c : */
diff --git a/src/proto/syntax.pro b/src/proto/syntax.pro
index c33a890d272d8dc40a6188a50cb86716ec593dba..ad442e66f5dbb16bb775186db4a50a8cca3815a0 100644
--- a/src/proto/syntax.pro
+++ b/src/proto/syntax.pro
@@ -1,47 +1,47 @@
 /* syntax.c */
-void syntax_start __ARGS((win_T *wp, linenr_T lnum));
-void syn_stack_free_all __ARGS((buf_T *buf));
-void syn_stack_apply_changes __ARGS((buf_T *buf));
-void syntax_end_parsing __ARGS((linenr_T lnum));
-int syntax_check_changed __ARGS((linenr_T lnum));
-int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
-void syntax_clear __ARGS((buf_T *buf));
-void ex_syntax __ARGS((exarg_T *eap));
-int syntax_present __ARGS((buf_T *buf));
-void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
-char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
-int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
-int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
-void init_highlight __ARGS((int both, int reset));
-int load_colors __ARGS((char_u *name));
-void do_highlight __ARGS((char_u *line, int forceit, int init));
-void free_highlight __ARGS((void));
-void restore_cterm_colors __ARGS((void));
-void set_normal_colors __ARGS((void));
-char_u *hl_get_font_name __ARGS((void));
-void hl_set_font_name __ARGS((char_u *font_name));
-void hl_set_bg_color_name __ARGS((char_u *name));
-void hl_set_fg_color_name __ARGS((char_u *name));
-void clear_hl_tables __ARGS((void));
-int hl_combine_attr __ARGS((int char_attr, int prim_attr));
-attrentry_T *syn_gui_attr2entry __ARGS((int attr));
-int syn_attr2attr __ARGS((int attr));
-attrentry_T *syn_term_attr2entry __ARGS((int attr));
-attrentry_T *syn_cterm_attr2entry __ARGS((int attr));
-char_u *highlight_has_attr __ARGS((int id, int flag, int modec));
-char_u *highlight_color __ARGS((int id, char_u *what, int modec));
-long_u highlight_gui_color_rgb __ARGS((int id, int fg));
-int syn_name2id __ARGS((char_u *name));
-int highlight_exists __ARGS((char_u *name));
-char_u *syn_id2name __ARGS((int id));
-int syn_namen2id __ARGS((char_u *linep, int len));
-int syn_check_group __ARGS((char_u *pp, int len));
-int syn_id2attr __ARGS((int hl_id));
-int syn_id2colors __ARGS((int hl_id, guicolor_T *fgp, guicolor_T *bgp));
-int syn_get_final_id __ARGS((int hl_id));
-void highlight_gui_started __ARGS((void));
-int highlight_changed __ARGS((void));
-void set_context_in_highlight_cmd __ARGS((expand_T *xp, char_u *arg));
-char_u *get_highlight_name __ARGS((expand_T *xp, int idx));
-void free_highlight_fonts __ARGS((void));
+extern void syntax_start __ARGS((win_T *wp, linenr_T lnum));
+extern void syn_stack_free_all __ARGS((buf_T *buf));
+extern void syn_stack_apply_changes __ARGS((buf_T *buf));
+extern void syntax_end_parsing __ARGS((linenr_T lnum));
+extern int syntax_check_changed __ARGS((linenr_T lnum));
+extern int get_syntax_attr __ARGS((colnr_T col, int *can_spell));
+extern void syntax_clear __ARGS((buf_T *buf));
+extern void ex_syntax __ARGS((exarg_T *eap));
+extern int syntax_present __ARGS((buf_T *buf));
+extern void set_context_in_syntax_cmd __ARGS((expand_T *xp, char_u *arg));
+extern char_u *get_syntax_name __ARGS((expand_T *xp, int idx));
+extern int syn_get_id __ARGS((win_T *wp, long lnum, colnr_T col, int trans, int *spellp));
+extern int syn_get_foldlevel __ARGS((win_T *wp, long lnum));
+extern void init_highlight __ARGS((int both, int reset));
+extern int load_colors __ARGS((char_u *name));
+extern void do_highlight __ARGS((char_u *line, int forceit, int init));
+extern void free_highlight __ARGS((void));
+extern void restore_cterm_colors __ARGS((void));
+extern void set_normal_colors __ARGS((void));
+extern char_u *hl_get_font_name __ARGS((void));
+extern void hl_set_font_name __ARGS((char_u *font_name));
+extern void hl_set_bg_color_name __ARGS((char_u *name));
+extern void hl_set_fg_color_name __ARGS((char_u *name));
+extern void clear_hl_tables __ARGS((void));
+extern int hl_combine_attr __ARGS((int char_attr, int prim_attr));
+extern attrentry_T *syn_gui_attr2entry __ARGS((int attr));
+extern int syn_attr2attr __ARGS((int attr));
+extern attrentry_T *syn_term_attr2entry __ARGS((int attr));
+extern attrentry_T *syn_cterm_attr2entry __ARGS((int attr));
+extern char_u *highlight_has_attr __ARGS((int id, int flag, int modec));
+extern char_u *highlight_color __ARGS((int id, char_u *what, int modec));
+extern long_u highlight_gui_color_rgb __ARGS((int id, int fg));
+extern int syn_name2id __ARGS((char_u *name));
+extern int highlight_exists __ARGS((char_u *name));
+extern char_u *syn_id2name __ARGS((int id));
+extern int syn_namen2id __ARGS((char_u *linep, int len));
+extern int syn_check_group __ARGS((char_u *pp, int len));
+extern int syn_id2attr __ARGS((int hl_id));
+extern int syn_id2colors __ARGS((int hl_id, guicolor_T *fgp, guicolor_T *bgp));
+extern int syn_get_final_id __ARGS((int hl_id));
+extern void highlight_gui_started __ARGS((void));
+extern int highlight_changed __ARGS((void));
+extern void set_context_in_highlight_cmd __ARGS((expand_T *xp, char_u *arg));
+extern char_u *get_highlight_name __ARGS((expand_T *xp, int idx));
+extern void free_highlight_fonts __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/proto/undo.pro b/src/proto/undo.pro
index ab707359cb7aaebd893e1fa00c0ea14d432e0454..c48e65cb2d968ef4bebf29ccf506de17a71ef5c9 100644
--- a/src/proto/undo.pro
+++ b/src/proto/undo.pro
@@ -7,7 +7,7 @@ extern int u_savedel __ARGS((linenr_T lnum, long nlines));
 extern void u_undo __ARGS((int count));
 extern void u_redo __ARGS((int count));
 extern void undo_time __ARGS((long step, int sec, int absolute));
-extern void u_sync __ARGS((void));
+extern void u_sync __ARGS((int force));
 extern void ex_undolist __ARGS((exarg_T *eap));
 extern void ex_undojoin __ARGS((exarg_T *eap));
 extern void u_unchanged __ARGS((buf_T *buf));
diff --git a/src/proto/window.pro b/src/proto/window.pro
index f0ca77bba4046e67c764c119ff0e0d9b80c68eca..5c00fbb8dd7785c0d7b3759be5a9d1e4065f4a87 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -1,59 +1,61 @@
 /* window.c */
-void do_window __ARGS((int nchar, long Prenum, int xchar));
-int win_split __ARGS((int size, int flags));
-int win_valid __ARGS((win_T *win));
-int win_count __ARGS((void));
-int make_windows __ARGS((int count, int vertical));
-void win_move_after __ARGS((win_T *win1, win_T *win2));
-void win_equal __ARGS((win_T *next_curwin, int current, int dir));
-void close_windows __ARGS((buf_T *buf, int keep_curwin));
-void win_close __ARGS((win_T *win, int free_buf));
-void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
-void win_free_all __ARGS((void));
-void close_others __ARGS((int message, int forceit));
-void curwin_init __ARGS((void));
-int win_alloc_first __ARGS((void));
-void win_init_size __ARGS((void));
-int win_new_tabpage __ARGS((int after));
-int may_open_tabpage __ARGS((void));
-int make_tabpages __ARGS((int maxcount));
-int valid_tabpage __ARGS((tabpage_T *tpc));
-tabpage_T *find_tabpage __ARGS((int n));
-int tabpage_index __ARGS((tabpage_T *ftp));
-void goto_tabpage __ARGS((int n));
-void goto_tabpage_tp __ARGS((tabpage_T *tp));
-void tabpage_move __ARGS((int nr));
-void win_goto __ARGS((win_T *wp));
-win_T *win_find_nr __ARGS((int winnr));
-void win_enter __ARGS((win_T *wp, int undo_sync));
-win_T *buf_jump_open_win __ARGS((buf_T *buf));
-int win_alloc_lines __ARGS((win_T *wp));
-void win_free_lsize __ARGS((win_T *wp));
-void shell_new_rows __ARGS((void));
-void shell_new_columns __ARGS((void));
-void win_size_save __ARGS((garray_T *gap));
-void win_size_restore __ARGS((garray_T *gap));
-int win_comp_pos __ARGS((void));
-void win_setheight __ARGS((int height));
-void win_setheight_win __ARGS((int height, win_T *win));
-void win_setwidth __ARGS((int width));
-void win_setwidth_win __ARGS((int width, win_T *wp));
-void win_setminheight __ARGS((void));
-void win_drag_status_line __ARGS((win_T *dragwin, int offset));
-void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
-void win_comp_scroll __ARGS((win_T *wp));
-void command_height __ARGS((void));
-void last_status __ARGS((int morewin));
-int tabline_height __ARGS((void));
-char_u *grab_file_name __ARGS((long count, linenr_T *file_lnum));
-char_u *file_name_at_cursor __ARGS((int options, long count, linenr_T *file_lnum));
-char_u *file_name_in_line __ARGS((char_u *line, int col, int options, long count, char_u *rel_fname, linenr_T *file_lnum));
-char_u *find_file_name_in_path __ARGS((char_u *ptr, int len, int options, long count, char_u *rel_fname));
-int path_with_url __ARGS((char_u *fname));
-int vim_isAbsName __ARGS((char_u *name));
-int vim_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
-int min_rows __ARGS((void));
-int only_one_window __ARGS((void));
-void check_lnums __ARGS((int do_curwin));
-int win_hasvertsplit __ARGS((void));
+extern void do_window __ARGS((int nchar, long Prenum, int xchar));
+extern int win_split __ARGS((int size, int flags));
+extern int win_valid __ARGS((win_T *win));
+extern int win_count __ARGS((void));
+extern int make_windows __ARGS((int count, int vertical));
+extern void win_move_after __ARGS((win_T *win1, win_T *win2));
+extern void win_equal __ARGS((win_T *next_curwin, int current, int dir));
+extern void close_windows __ARGS((buf_T *buf, int keep_curwin));
+extern void win_close __ARGS((win_T *win, int free_buf));
+extern void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp));
+extern void win_free_all __ARGS((void));
+extern void close_others __ARGS((int message, int forceit));
+extern void curwin_init __ARGS((void));
+extern int win_alloc_first __ARGS((void));
+extern void win_init_size __ARGS((void));
+extern int win_new_tabpage __ARGS((int after));
+extern int may_open_tabpage __ARGS((void));
+extern int make_tabpages __ARGS((int maxcount));
+extern int valid_tabpage __ARGS((tabpage_T *tpc));
+extern tabpage_T *find_tabpage __ARGS((int n));
+extern int tabpage_index __ARGS((tabpage_T *ftp));
+extern void goto_tabpage __ARGS((int n));
+extern void goto_tabpage_tp __ARGS((tabpage_T *tp));
+extern void goto_tabpage_win __ARGS((tabpage_T *tp, win_T *wp));
+extern void tabpage_move __ARGS((int nr));
+extern void win_goto __ARGS((win_T *wp));
+extern win_T *win_find_nr __ARGS((int winnr));
+extern void win_enter __ARGS((win_T *wp, int undo_sync));
+extern win_T *buf_jump_open_win __ARGS((buf_T *buf));
+extern win_T *buf_jump_open_tab __ARGS((buf_T *buf));
+extern int win_alloc_lines __ARGS((win_T *wp));
+extern void win_free_lsize __ARGS((win_T *wp));
+extern void shell_new_rows __ARGS((void));
+extern void shell_new_columns __ARGS((void));
+extern void win_size_save __ARGS((garray_T *gap));
+extern void win_size_restore __ARGS((garray_T *gap));
+extern int win_comp_pos __ARGS((void));
+extern void win_setheight __ARGS((int height));
+extern void win_setheight_win __ARGS((int height, win_T *win));
+extern void win_setwidth __ARGS((int width));
+extern void win_setwidth_win __ARGS((int width, win_T *wp));
+extern void win_setminheight __ARGS((void));
+extern void win_drag_status_line __ARGS((win_T *dragwin, int offset));
+extern void win_drag_vsep_line __ARGS((win_T *dragwin, int offset));
+extern void win_comp_scroll __ARGS((win_T *wp));
+extern void command_height __ARGS((void));
+extern void last_status __ARGS((int morewin));
+extern int tabline_height __ARGS((void));
+extern char_u *grab_file_name __ARGS((long count, linenr_T *file_lnum));
+extern char_u *file_name_at_cursor __ARGS((int options, long count, linenr_T *file_lnum));
+extern char_u *file_name_in_line __ARGS((char_u *line, int col, int options, long count, char_u *rel_fname, linenr_T *file_lnum));
+extern char_u *find_file_name_in_path __ARGS((char_u *ptr, int len, int options, long count, char_u *rel_fname));
+extern int path_with_url __ARGS((char_u *fname));
+extern int vim_isAbsName __ARGS((char_u *name));
+extern int vim_FullName __ARGS((char_u *fname, char_u *buf, int len, int force));
+extern int min_rows __ARGS((void));
+extern int only_one_window __ARGS((void));
+extern void check_lnums __ARGS((int do_curwin));
+extern int win_hasvertsplit __ARGS((void));
 /* vim: set ft=c : */
diff --git a/src/spell.c b/src/spell.c
index fba3857b66c8959d91370c9ed890435f25d6bfca..787a2c1ca3200038ddd45a52388683d34f322df5 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -5959,7 +5959,7 @@ aff_process_flags(affile, entry)
 {
     char_u	*p;
     char_u	*prevp;
-    int		flag;
+    unsigned	flag;
 
     if (entry->ae_flags != NULL
 		&& (affile->af_compforbid != 0 || affile->af_comppermit != 0))
@@ -6474,6 +6474,7 @@ spell_read_dic(spin, fname, affile)
 	if (spin->si_ascii && has_non_ascii(w))
 	{
 	    ++non_ascii;
+	    vim_free(pc);
 	    continue;
 	}
 
@@ -6495,10 +6496,11 @@ spell_read_dic(spin, fname, affile)
 	/* Store the word in the hashtable to be able to find duplicates. */
 	dw = (char_u *)getroom_save(spin, w);
 	if (dw == NULL)
+	{
 	    retval = FAIL;
-	vim_free(pc);
-	if (retval == FAIL)
+	    vim_free(pc);
 	    break;
+	}
 
 	hash = hash_hash(dw);
 	hi = hash_lookup(&ht, dw, hash);
@@ -6558,6 +6560,8 @@ spell_read_dic(spin, fname, affile)
 			    CONDIT_SUF, flags, store_afflist, pfxlen) == FAIL)
 		retval = FAIL;
 	}
+
+	vim_free(pc);
     }
 
     if (duplicate > 0)
diff --git a/src/undo.c b/src/undo.c
index efbd4ccf43902ae1c81d62d65686e93a900b6053..a2861d5362ee0a35d5d552e506e8e7b220d9a0c2 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -551,7 +551,7 @@ u_undo(count)
      */
     if (curbuf->b_u_synced == FALSE)
     {
-	u_sync();
+	u_sync(TRUE);
 	count = 1;
     }
 
@@ -673,7 +673,7 @@ undo_time(step, sec, absolute)
 
     /* First make sure the current undoable change is synced. */
     if (curbuf->b_u_synced == FALSE)
-	u_sync();
+	u_sync(TRUE);
 
     u_newcount = 0;
     u_oldcount = 0;
@@ -1255,10 +1255,12 @@ u_undo_end(did_undo, absolute)
  * u_sync: stop adding to the current entry list
  */
     void
-u_sync()
+u_sync(force)
+    int	    force;	/* Also sync when no_u_sync is set. */
 {
-    if (curbuf->b_u_synced)
-	return;		    /* already synced */
+    /* Skip it when already synced or syncing is disabled. */
+    if (curbuf->b_u_synced || (!force && no_u_sync > 0))
+	return;
 #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK)
     if (im_is_preediting())
 	return;		    /* XIM is busy, don't break an undo sequence */
diff --git a/src/version.h b/src/version.h
index a5c7e886948959aed98135fd5cce285c5466fe4c..9358164f34d9f1104caf98985721f3b2527c38c7 100644
--- a/src/version.h
+++ b/src/version.h
@@ -19,9 +19,9 @@
 #define VIM_VERSION_MINOR_STR		"0"
 #define VIM_VERSION_100	    (VIM_VERSION_MAJOR * 100 + VIM_VERSION_MINOR)
 
-#define VIM_VERSION_BUILD		 259
-#define VIM_VERSION_BUILD_BCD		0x103
-#define VIM_VERSION_BUILD_STR		"259"
+#define VIM_VERSION_BUILD		 260
+#define VIM_VERSION_BUILD_BCD		0x104
+#define VIM_VERSION_BUILD_STR		"260"
 #define VIM_VERSION_PATCHLEVEL		 0
 #define VIM_VERSION_PATCHLEVEL_STR	"0"
 /* Used by MacOS port should be one of: development, alpha, beta, final */
@@ -33,8 +33,8 @@
  * VIM_VERSION_MEDIUM is used for the startup-screen.
  * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
  */
-#define VIM_VERSION_NODOT	"vim70c"
-#define VIM_VERSION_SHORT	"7.0c"
-#define VIM_VERSION_MEDIUM	"7.0c13 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0c13 BETA (2006 Apr 8)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0c13 BETA (2006 Apr 8, compiled "
+#define VIM_VERSION_NODOT	"vim70d"
+#define VIM_VERSION_SHORT	"7.0d"
+#define VIM_VERSION_MEDIUM	"7.0d BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0d BETA (2006 Apr 10)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0d BETA (2006 Apr 10, compiled "
diff --git a/src/window.c b/src/window.c
index 5e9553b6e56c266e3b2b491c192608638a05c33f..b401fc1eba0df18e246f265ddf11339058b5a871 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3526,6 +3526,26 @@ goto_tabpage_tp(tp)
     }
 }
 
+/*
+ * Enter window "wp" in tab page "tp".
+ * Also updates the GUI tab.
+ */
+    void
+goto_tabpage_win(tp, wp)
+    tabpage_T	*tp;
+    win_T	*wp;
+{
+    goto_tabpage_tp(tp);
+    if (curtab == tp && win_valid(wp))
+    {
+	win_enter(wp, TRUE);
+# ifdef FEAT_GUI_TABLINE
+	if (gui_use_tabline())
+	    gui_mch_set_curtab(tabpage_index(curtab));
+# endif
+    }
+}
+
 /*
  * Move the current tab page to before tab page "nr".
  */
@@ -3810,7 +3830,7 @@ win_enter_ext(wp, undo_sync, curwin_invalid)
 
     /* sync undo before leaving the current buffer */
     if (undo_sync && curbuf != wp->w_buffer)
-	u_sync();
+	u_sync(FALSE);
     /* may have to copy the buffer options when 'cpo' contains 'S' */
     if (wp->w_buffer != curbuf)
 	buf_copy_options(wp->w_buffer, BCO_ENTER | BCO_NOHELP);
@@ -3896,9 +3916,8 @@ win_enter_ext(wp, undo_sync, curwin_invalid)
 
 #if defined(FEAT_WINDOWS) || defined(FEAT_SIGNS) || defined(PROTO)
 /*
- * Jump to the first open window that contains buffer buf if one exists
- * TODO: Alternatively jump to last open window? Dependent from 'splitbelow'?
- * Returns pointer to window if it exists, otherwise NULL.
+ * Jump to the first open window that contains buffer "buf", if one exists.
+ * Returns a pointer to the window found, otherwise NULL.
  */
     win_T *
 buf_jump_open_win(buf)
@@ -3907,7 +3926,7 @@ buf_jump_open_win(buf)
 # ifdef FEAT_WINDOWS
     win_T	*wp;
 
-    for (wp = firstwin; wp; wp = wp->w_next)
+    for (wp = firstwin; wp != NULL; wp = wp->w_next)
 	if (wp->w_buffer == buf)
 	    break;
     if (wp != NULL)
@@ -3919,6 +3938,47 @@ buf_jump_open_win(buf)
     return NULL;
 # endif
 }
+
+/*
+ * Jump to the first open window in any tab page that contains buffer "buf",
+ * if one exists.
+ * Returns a pointer to the window found, otherwise NULL.
+ */
+    win_T *
+buf_jump_open_tab(buf)
+    buf_T	*buf;
+{
+# ifdef FEAT_WINDOWS
+    win_T	*wp;
+    tabpage_T	*tp;
+
+    /* First try the current tab page. */
+    wp = buf_jump_open_win(buf);
+    if (wp != NULL)
+	return wp;
+
+    for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+	if (tp != curtab)
+	{
+	    for (wp = tp->tp_firstwin; wp != NULL; wp = wp->w_next)
+		if (wp->w_buffer == buf)
+		    break;
+	    if (wp != NULL)
+	    {
+		goto_tabpage_win(tp, wp);
+		if (curwin != wp)
+		    wp = NULL;	/* something went wrong */
+		break;
+	    }
+	}
+
+    return wp;
+# else
+    if (curwin->w_buffer == buf)
+	return curwin;
+    return NULL;
+# endif
+}
 #endif
 
 /*