updated for version 7.0084
diff --git a/runtime/bugreport.vim b/runtime/bugreport.vim
index a6c36b9..f0c045e 100644
--- a/runtime/bugreport.vim
+++ b/runtime/bugreport.vim
@@ -2,7 +2,7 @@
 :" information about the environment of a possible bug in Vim.
 :"
 :" Maintainer:	Bram Moolenaar <Bram@vim.org>
-:" Last change:	2001 Feb 02
+:" Last change:	2005 Jun 12
 :"
 :" To use inside Vim:
 :"	:so $VIMRUNTIME/bugreport.vim
@@ -49,6 +49,8 @@
 :  call <SID>CheckFile($VIMRUNTIME . "/syntax/synload.vim")
 :  delfun <SID>CheckDir
 :  delfun <SID>CheckFile
+:  echo "--- Scripts sourced ---"
+:  scriptnames
 :endif
 :set all
 :set termcap
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index cceda32..dc3d695 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -1,4 +1,4 @@
-*develop.txt*   For Vim version 7.0aa.  Last change: 2005 Jun 04
+*develop.txt*   For Vim version 7.0aa.  Last change: 2005 Jun 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -375,8 +375,10 @@
 
 - Missing support for multi-byte encodings.  At least UTF-8 must be supported,
   so that more than one language can be used in the same file.
+  Doing on-the-fly conversion is not always possible (would require iconv
+  support).
 - For the programs and libraries: Using them as-is would require installing
-  them separately from Vim.  That's not impossible, but a drawback.
+  them separately from Vim.  That's mostly not impossible, but a drawback.
 - Performance: A few tests showed that it's possible to check spelling on the
   fly (while redrawing), just like syntax highlighting.  But the mechanisms
   used by other code are much slower.  Myspell uses a simplistic hashtable,
@@ -392,7 +394,9 @@
   all English words and highlight non-Canadian words differently.
 - Missing support for rare words.  Many words are correct but hardly ever used
   and could be a misspelled often-used word.
-
+- For making suggestions the speed is less important and requiring to install
+  another program or library would be acceptable.  But the word lists probably
+  differ, the suggestions may be wrong words.
 
 ==============================================================================
 4. Assumptions						*design-assumptions*
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 8c98ff0..a8d54a5 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jun 07
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jun 11
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -235,6 +235,18 @@
 	:echo alist == blist
 <	1
 
+Note about comparing lists: Two lists are considered equal if they have the
+same length and all items compare equal, as with using "==".  There is one
+exception: When comparing a number with a string and the string contains extra
+characters beside the number they are not equal. Example: >
+	echo 4 == "4x"
+<	1 >
+	echo [4] == ["4x"]
+<	0
+
+This is to fix the odd behavior of == that can't be changed for backward
+compatibility reasons.
+
 
 List unpack ~
 
@@ -2593,7 +2605,8 @@
 
 getwinvar({nr}, {varname})				*getwinvar()*
 		The result is the value of option or local window variable
-		{varname} in window {nr}.
+		{varname} in window {nr}.  When {nr} is zero the current
+		window is used.
 		This also works for a global option, buffer-local option and
 		window-local option, but it doesn't work for a global variable
 		or buffer-local variable.
@@ -3692,7 +3705,7 @@
 
 setwinvar({nr}, {varname}, {val})			*setwinvar()*
 		Set option or local variable {varname} in window {nr} to
-		{val}.
+		{val}.  When {nr} is zero the current window is used.
 		This also works for a global or local buffer option, but it
 		doesn't work for a global or local buffer variable.
 		For a local buffer option the global value is unchanged.
@@ -3804,6 +3817,7 @@
 			Number		123
 			Funcref		function('name')
 			List		[item, item]
+			Dictionary	{key: value, key: value}
 		Note that in String values the ' character is doubled.
 
 							*strlen()*
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index ee187c9..3f8e35d 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 7.0aa.  Last change: 2005 Mar 29
+*intro.txt*     For Vim version 7.0aa.  Last change: 2005 Jun 12
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -198,7 +198,7 @@
 introduce Y2K problems, but those are not really part of Vim itself.
 
 ==============================================================================
-3. Credits						*credits* *author*
+3. Credits				*credits* *author* *Bram* *Moolenaar*
 
 Most of Vim was written by Bram Moolenaar <Bram@vim.org>.
 
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 590b80e..aa7c745 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.0aa.  Last change: 2005 Jun 08
+*spell.txt*	For Vim version 7.0aa.  Last change: 2005 Jun 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -51,7 +51,7 @@
 [S			Like "]S" but search backwards.
 
 
-To add words to your own word list:
+To add words to your own word list:				*E764*
 
 							*zg*
 zg			Add word under the cursor as a good word to
@@ -73,6 +73,21 @@
 |spell-wordlist-format|.
 
 
+Finding suggestions for bad words:
+
+							*z?*
+z?			For the badly spelled word under the cursor suggest
+			the correctly spelled word.
+			When there is no badly spelled word under the cursor
+			use the one after the cursor, in the same line.
+			The results are sorted on similarity to the badly
+			spelled word.
+			This may take a long time.  Hit CTRL-C when you are
+			bored.
+			You can enter the number of your choice or press
+			<Enter> if you don't want to replace.
+
+
 PERFORMANCE
 
 Note that Vim does on-the-fly spell checking.  To make this work fast the
@@ -170,6 +185,10 @@
 include characters like '-' in 'iskeyword'.  The word characters do depend on
 'encoding'.
 
+The table with word characters is stored in the main .spl file.  Therefore it
+matters what the current locale is when generating it!  A .add.spl file does
+not contain a word table.
+
 A word that starts with a digit is always ignored.  That includes hex numbers
 in the form 0xff and 0XFF.
 
@@ -224,6 +243,9 @@
 <			This combines the English word lists for US, CA and AU
 			into one en.spl file.
 			Up to eight regions can be combined. *E754* *755*
+			The REP and SAL items of the first .aff file where
+			they appear are used. |spell-affix-REP|
+			|spell-affix-SAL|
 
 			When the spell file was written all currently used
 			spell files will be reloaded.
@@ -452,4 +474,53 @@
 a typing mistake anyway.
 
 
+REPLACEMENTS						*spell-affix-REP*
+
+In the affix file REP items can be used to define common mistakes.  This is
+used to make spelling suggestions.  The items define the "from" text and the
+"to" replacement.  Example:
+
+	REP 4 ~
+	REP f ph ~
+	REP ph f ~
+	REP k ch ~
+	REP ch k ~
+
+The first line specifies the number of REP lines following.  Vim ignores it.
+
+
+SIMILAR CHARACTERS					*spell-affix-MAP*
+
+In the affix file MAP items can be used to define letters that very much
+alike.  This is mostly used for a letter with different accents.  This is used
+to prefer suggestions with these letters substituted.  Example:
+
+	MAP 2 ~
+	MAP eéëêè ~
+	MAP uüùúû ~
+
+The first line specifies the number of MAP lines following.  Vim ignores it.
+
+
+SOUNDS-A-LIKE						*spell-affix-SAL*
+
+In the affix file SAL items can be used to define the sounds-a-like mechanism
+to be used.  The main items define the "from" text and the "to" replacement.
+Example:
+
+	SAL CIA                  X ~
+	SAL CH                   X ~
+	SAL C                    K ~
+	SAL K                    K ~
+
+TODO: explain how it works.
+
+There are a few special items:
+
+	SAL followup		true ~
+	SAL collapse_result	true ~
+	SAL remove_accents	true ~
+
+"1" has the same meaning as "true".  Any other value means "false".
+
  vim:tw=78:sw=4:ts=8:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 7eb179e..76030d6 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2835,6 +2835,7 @@
 B	motion.txt	/*B*
 BeBox	os_beos.txt	/*BeBox*
 BeOS	os_beos.txt	/*BeOS*
+Bram	intro.txt	/*Bram*
 BufAdd	autocmd.txt	/*BufAdd*
 BufCreate	autocmd.txt	/*BufCreate*
 BufDelete	autocmd.txt	/*BufDelete*
@@ -3805,6 +3806,7 @@
 Macintosh	os_mac.txt	/*Macintosh*
 Mark	motion.txt	/*Mark*
 MiNT	os_mint.txt	/*MiNT*
+Moolenaar	intro.txt	/*Moolenaar*
 MorphOS	os_amiga.txt	/*MorphOS*
 Motif	gui_x11.txt	/*Motif*
 MzScheme	if_mzsch.txt	/*MzScheme*
@@ -5125,6 +5127,7 @@
 hebrew.txt	hebrew.txt	/*hebrew.txt*
 help	various.txt	/*help*
 help-context	help.txt	/*help-context*
+help-tags	tags	1
 help-translated	various.txt	/*help-translated*
 help-xterm-window	various.txt	/*help-xterm-window*
 help.txt	help.txt	/*help.txt*
@@ -6250,9 +6253,12 @@
 spell	spell.txt	/*spell*
 spell-affix-KEP	spell.txt	/*spell-affix-KEP*
 spell-affix-RAR	spell.txt	/*spell-affix-RAR*
+spell-affix-REP	spell.txt	/*spell-affix-REP*
+spell-affix-SAL	spell.txt	/*spell-affix-SAL*
 spell-affix-chars	spell.txt	/*spell-affix-chars*
 spell-affix-mbyte	spell.txt	/*spell-affix-mbyte*
 spell-affix-vim	spell.txt	/*spell-affix-vim*
+spell-dic-format	spell.txt	/*spell-dic-format*
 spell-file-format	spell.txt	/*spell-file-format*
 spell-mkspell	spell.txt	/*spell-mkspell*
 spell-quickstart	spell.txt	/*spell-quickstart*
@@ -7070,6 +7076,7 @@
 z<CR>	scroll.txt	/*z<CR>*
 z<Left>	scroll.txt	/*z<Left>*
 z<Right>	scroll.txt	/*z<Right>*
+z?	spell.txt	/*z?*
 zA	fold.txt	/*zA*
 zC	fold.txt	/*zC*
 zD	fold.txt	/*zD*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index a46f407..f33cc07 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Jun 08
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Jun 13
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,7 +30,15 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-New menu file doesn't work with older vim.  exists("spell") doesn't work?
+Range(0) should return an empty list (Servatius Brandt).
+
+a few builtin functions call set_var() internally to set a variable.  They do
+not check for a valid variable name.  Example: setbufvar(1, ";", 1) sets a
+variable named ";". (Servatius Brandt)
+
+Patch for if_python to make exit work better with threads. (ugo)
+Still seems to fail 15% of the time.
+Vim 7 breaks, works OK with 6.3 version of if_python (Thakkar)
 
 Add extra list of file locations.  Can be used with:
     :ltag	      list of matching tags, like :tselect
@@ -86,18 +94,25 @@
 -   Win32: tearoff menu window should have a scrollbar when it's taller than
     the screen.
 
-Patch for if_python to make exit work better with threads. (ugo)
-Still seems to fail 15% of the time.
 
 
 PLANNED FOR VERSION 7.0:
 
 -   Add SPELLCHECKER, with support for many languages.
     - Spell checking code todo's:
-	- How about making suggestions?  Use an external program like aspell?
-	  Or include the myspell suggestion code in Vim?
-	- Support for approximate-regexps will help with finding similar words
-	  (agrep http://www.tgries.de/agrep/).
+	- Code for making suggestions:
+	  - Also need to store "toupper" in the .spl file.
+	  - Give better score for words that sound like the bad word?
+	  - "sounds-like" matching: Also try variants of the soundslike word.
+	  - Aspell has the "special" character, useful?
+	  - Support for approximate-regexps will help with finding similar
+	    words (agrep http://www.tgries.de/agrep/).
+	- Give a warning for ":mkspell it_IT wordfile", thus using a region
+	  name with only one input file.
+	- Also put list of word characters in word list file.  Otherwise the
+	  one for Italian may differ from the one used for English.
+	- Somehow mark "frequent" words, so that suggestions with "a" and
+	  "the" can be preferred?
 	- Make "en-rare" spell file.
 	  Convention: use en_US (language_region) and en-rare (language-field)
           Add hl groups to 'spelllang'?
@@ -130,7 +145,8 @@
     Later:
     - Implement compound words when it works for Myspell.  Current idea has
       the problem that "foo/X" always allows "foofoo", there is no way to
-      specify a word can only be at the start or end.
+      specify a word can only be at the start or end, or that only certain
+      words combine.
 
 -   REFACTORING: The main() function is very long.  Move parts to separate
     functions, especially loops.  Ideas from Walter Briscoe (2003 Apr 3, 2004
@@ -266,7 +282,7 @@
 Add strtol() to avoid the problems with leading zero causing octal conversion.
 
 Try new POSIX tests, made after my comments. (Geoff Clare, 2005 April 7)
-Before April 23 if possible.
+Version 1.5 is in ~/src/posix/1.5. (Lynne Canal)
 
 Add a 'tool' window: behaves like a preview window but there can be several.
 Don't count it in only_one_window(). (Alexei Alexandrov)
@@ -2342,6 +2358,9 @@
 
 
 'cindent', 'smartindent':
+8   Wrong indent below ? : with ():
+	if ((a ? (b) : c) != 0)
+		       aligns with ":".
 8   Wrong indent for ":" after a method with line break in arguments:
 	Foo::Foo (int one,
 		    int two)
@@ -2927,12 +2946,8 @@
 8   When using ":mksession", also store a command to reset all options to
     their default value, before setting the options that are not at their
     default value.
-8   Should ":mksession" restore the current directory when writing the
-    session, or the directory where the session file is?  Probably need a word
-    in 'sessionoptions' to make a choice:
-    "curdir" (cd to current directory when session file was generated)
-    "sessiondir" (cd to directory of session file)
-    "nodir" (don't cd at all)
+7   With ":mksession" also store the tag stack and jump history. (Michal
+    Malecki)
 8   Make "old" number options that really give a number of effects into string
     options that are a comma separated list.  The old number values should
     also be supported.
diff --git a/runtime/doc/usr_11.txt b/runtime/doc/usr_11.txt
index 28900b2..05af29e 100644
--- a/runtime/doc/usr_11.txt
+++ b/runtime/doc/usr_11.txt
@@ -1,4 +1,4 @@
-*usr_11.txt*	For Vim version 7.0aa.  Last change: 2005 Apr 01
+*usr_11.txt*	For Vim version 7.0aa.  Last change: 2005 Jun 09
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -34,7 +34,7 @@
 
 	Using swap file ".help.txt.swp" ~
 	Original file "~/vim/runtime/doc/help.txt" ~
-	Recovery completed.  You should check if everything is OK. ~
+	Recovery completed. You should check if everything is OK. ~
 	(You might want to write out this file under another name ~
 	and run diff with the original file to check for changes) ~
 	Delete the .swp file afterwards. ~
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index ebf44fa..1c0a09d 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt*	For Vim version 7.0aa.  Last change: 2005 May 18
+*usr_41.txt*	For Vim version 7.0aa.  Last change: 2005 Jun 09
 
 		     VIM USER MANUAL - by Bram Moolenaar
 
@@ -612,13 +612,13 @@
 	join()			join List items into a String
 	string()		String representation of a List
 	call()			call a function with List as arguments
-	index()			index of a value in a list
+	index()			index of a value in a List
 	max()			maximum value in a List
 	min()			minimum value in a List
 	count()			count number of times a value appears in a List
 
 Dictionary manipulation:
-	get()			get an entries without error for wrong key
+	get()			get an entry without an error for a wrong key
 	len()			number of entries in a Dictionary
 	has_key()		check whether a key appears in a Dictionary
 	empty()			check if Dictionary is empty
@@ -1117,7 +1117,7 @@
 	one ~
 	two ~
 
-The will notice the items are not ordered.  You can sort the list to get a
+The will notice the keys are not ordered.  You can sort the list to get a
 specific order: >
 
 	:for key in sort(keys(uk2nl))
@@ -2237,8 +2237,8 @@
 
 You can put many other functions in the mylib.vim script, you are free to
 organize your functions in library scripts.  But you must use function names
-where the part before the colon matches the script name.  Otherwise Vim
-would not know what script to load.
+where the part before the '#' matches the script name.  Otherwise Vim would
+not know what script to load.
 
 If you get really enthousiastic and write lots of library scripts, you may
 want to use subdirectories.  Example: >
@@ -2256,7 +2256,7 @@
 	endfunction
 
 Notice that the name the function is defined with is exactly the same as the
-name used for calling the function.  And the part before the last colon
+name used for calling the function.  And the part before the last '#'
 exactly matches the subdirectory and script name.
 
 You can use the same mechanism for variables: >
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 31f8ccb..322137f 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Jun 07
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Jun 13
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -144,6 +144,11 @@
 
 The 'spell' option is used to switch spell checking on or off.
 The 'spelllang' option is used to specify the languages that are accepted.
+The 'spellfile' option specifies where new words are added.
+
+The |[s| and |]s| commands can be used to move to the next or previous error.
+The |zg| and |zw| commands can be used to add good and wrong words.
+The |z?| command can be used to correct the word.
 
 The "undercurl" highlighting attribute was added to nicely point out spelling
 mistakes in the GUI (based on patch from Marcin Dalecki).
@@ -649,6 +654,9 @@
 GTK GUI: use the GTK file dialog when it's available.  Mix from patches by
 Grahame Bowland and Evan Webb.
 
+Added ":scriptnames" to bugreport.vim, so that we can see what plugins were
+used.
+
 ==============================================================================
 COMPILE TIME CHANGES					*compile-changes-7*
 
@@ -1074,6 +1082,7 @@
 
 When using a Python "atexit" function it was not invoked when Vim exits.  Now
 call Py_Finalize() for that. (Ugo Di Girolamo)
+This breaks the thread stuff though, fixed by Ugo.
 
 GTK GUI: using a .vimrc with "set cmdheight=2 lines=43" and ":split" right
 after startup, the window layout is messed up. (Michael Schaap)  Added
diff --git a/runtime/indent/lua.vim b/runtime/indent/lua.vim
index 2ea16db..ace7fd1 100644
--- a/runtime/indent/lua.vim
+++ b/runtime/indent/lua.vim
@@ -2,7 +2,13 @@
 " Language:	Lua script
 " Maintainer:	Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
 " First Author:	Max Ischenko <mfi 'at' ukr.net>
-" Last Change:	2004 Aug 29
+" Last Change:	2005 Jun 09
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+  finish
+endif
+let b:did_indent = 1
 
 " Only define the function once.
 if exists("*GetLuaIndent")
diff --git a/runtime/indent/mupad.vim b/runtime/indent/mupad.vim
index b74f034..aeef520 100644
--- a/runtime/indent/mupad.vim
+++ b/runtime/indent/mupad.vim
@@ -1,35 +1,35 @@
-" Vim indent file

-" Language:    MuPAD source files

-" Maintainer:  Dave Silvia <dsilvia@mchsi.com>

-" Filenames:   *.mu

-" Date:        6/30/2004

-

-if exists("b:did_indent")

-	finish

-endif

-

-let b:did_indent = 1

-

-runtime indent/GenericIndent.vim

-

-let b:indentStmts=''

-let b:dedentStmts=''

-let b:allStmts=''

-" NOTE:  b:indentStmts, b:dedentStmts, and b:allStmts need to be initialized

-"        to '' before callin the functions because 'indent.vim' explicitly

-"        'unlet's b:did_indent.  This means that the lists will compound if

-"        you change back and forth between buffers.  This is true as of

-"        version 6.3, 6/23/2004.

-setlocal indentexpr=GenericIndent()

-setlocal indentkeys==end_proc,=then,=else,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O

-

-call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')

-call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')

-call GenericAllStmts()

-

-

-" TODO:  More comprehensive indentstmt, dedentstmt, and indentkeys values.

-"

-" BUGS:  You tell me!  Probably.  I just haven't found one yet or haven't been

-"        told about one.

-"        

+" Vim indent file
+" Language:    MuPAD source files
+" Maintainer:  Dave Silvia <dsilvia@mchsi.com>
+" Filenames:   *.mu
+" Date:        6/30/2004
+
+if exists("b:did_indent")
+	finish
+endif
+
+let b:did_indent = 1
+
+runtime indent/GenericIndent.vim
+
+let b:indentStmts=''
+let b:dedentStmts=''
+let b:allStmts=''
+" NOTE:  b:indentStmts, b:dedentStmts, and b:allStmts need to be initialized
+"        to '' before callin the functions because 'indent.vim' explicitly
+"        'unlet's b:did_indent.  This means that the lists will compound if
+"        you change back and forth between buffers.  This is true as of
+"        version 6.3, 6/23/2004.
+setlocal indentexpr=GenericIndent()
+setlocal indentkeys==end_proc,=then,=else,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O
+
+call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')
+call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')
+call GenericAllStmts()
+
+
+" TODO:  More comprehensive indentstmt, dedentstmt, and indentkeys values.
+"
+" BUGS:  You tell me!  Probably.  I just haven't found one yet or haven't been
+"        told about one.
+"        
diff --git a/runtime/indent/xsd.vim b/runtime/indent/xsd.vim
new file mode 100644
index 0000000..59e0b60
--- /dev/null
+++ b/runtime/indent/xsd.vim
@@ -0,0 +1,13 @@
+" Vim indent file
+" Language: 	.xsd files (XML Schema)
+" Maintainer:	Nobody
+" Last Change:	2005 Jun 09
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+  finish
+endif
+
+" Use XML formatting rules
+runtime! indent/xml.vim
+
diff --git a/runtime/menu.vim b/runtime/menu.vim
index cf59f16..08a6baa 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2005 Jun 08
+" Last Change:	2005 Jun 11
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
diff --git a/runtime/spell/en.ascii.spl b/runtime/spell/en.ascii.spl
index a90bb07..2eeec8b 100644
--- a/runtime/spell/en.ascii.spl
+++ b/runtime/spell/en.ascii.spl
Binary files differ
diff --git a/runtime/spell/en.latin1.spl b/runtime/spell/en.latin1.spl
index 6748269..a9dabbf 100644
--- a/runtime/spell/en.latin1.spl
+++ b/runtime/spell/en.latin1.spl
Binary files differ
diff --git a/runtime/spell/en.utf-8.spl b/runtime/spell/en.utf-8.spl
index f3bfa8d..68d8211 100644
--- a/runtime/spell/en.utf-8.spl
+++ b/runtime/spell/en.utf-8.spl
Binary files differ
diff --git a/runtime/syntax/squid.vim b/runtime/syntax/squid.vim
index 554bdca..a8462bb 100644
--- a/runtime/syntax/squid.vim
+++ b/runtime/syntax/squid.vim
@@ -1,9 +1,10 @@
 " Vim syntax file
 " Language:	Squid config file
 " Maintainer:	Klaus Muth <klaus@hampft.de>
-" Last Change:	2004 Feb 01
+" Last Change:	2005 Jun 12
 " URL:		http://www.hampft.de/vim/syntax/squid.vim
-" ThanksTo:	Ilya Sher <iso8601@mail.ru>
+" ThanksTo:	Ilya Sher <iso8601@mail.ru>,
+"               Michael Dotzler <Michael.Dotzler@leoni.com>
 
 
 " For version 5.x: Clear all syntax items
@@ -22,63 +23,62 @@
 syn match	squidTag	contained "TAG: .*$"
 
 " Lots & lots of Keywords!
-syn keyword	squidConf	acl always_direct announce_host
-syn keyword	squidConf	announce_period announce_port announce_to
-syn keyword	squidConf	anonymize_headers append_domain
-syn keyword	squidConf	as_whois_server authenticate_children
-syn keyword	squidConf	authenticate_program authenticate_ttl
-syn keyword	squidConf	broken_posts buffered_logs cache_access_log
-syn keyword	squidConf	cache_announce cache_dir cache_dns_program
-syn keyword	squidConf	cache_effective_group cache_effective_user
-syn keyword	squidConf	cache_host cache_host_acl cache_host_domain
-syn keyword	squidConf	cache_log cache_mem cache_mem_high
-syn keyword	squidConf	cache_mem_low cache_mgr cachemgr_passwd
-syn keyword	squidConf	cache_peer cache_stoplist
-syn keyword	squidConf	cache_stoplist_pattern cache_store_log
-syn keyword	squidConf	cache_swap cache_swap_high cache_swap_log
-syn keyword	squidConf	cache_swap_low client_db client_lifetime
-syn keyword	squidConf	client_netmask connect_timeout coredump_dir
-syn keyword	squidConf	dead_peer_timeout debug_options delay_access
-syn keyword	squidConf	delay_class delay_initial_bucket_level
-syn keyword	squidConf	delay_parameters delay_pools dns_children
-syn keyword	squidConf	dns_defnames dns_nameservers dns_testnames
-syn keyword	squidConf	emulate_httpd_log err_html_text
-syn keyword	squidConf	fake_user_agent firewall_ip forwarded_for
-syn keyword	squidConf	forward_snmpd_port fqdncache_size
+syn keyword	squidConf	acl always_direct announce_host announce_period
+syn keyword	squidConf	announce_port announce_to anonymize_headers
+syn keyword	squidConf	append_domain as_whois_server auth_param_basic
+syn keyword	squidConf	authenticate_children authenticate_program
+syn keyword	squidConf	authenticate_ttl broken_posts buffered_logs
+syn keyword	squidConf	cache_access_log cache_announce cache_dir
+syn keyword	squidConf	cache_dns_program cache_effective_group
+syn keyword	squidConf	cache_effective_user cache_host cache_host_acl
+syn keyword	squidConf	cache_host_domain cache_log cache_mem
+syn keyword	squidConf	cache_mem_high cache_mem_low cache_mgr
+syn keyword	squidConf	cachemgr_passwd cache_peer cache_peer_access
+syn keyword	squidConf	cahce_replacement_policy cache_stoplist
+syn keyword	squidConf	cache_stoplist_pattern cache_store_log cache_swap
+syn keyword	squidConf	cache_swap_high cache_swap_log cache_swap_low
+syn keyword	squidConf	client_db client_lifetime client_netmask
+syn keyword	squidConf	connect_timeout coredump_dir dead_peer_timeout
+syn keyword	squidConf	debug_options delay_access delay_class
+syn keyword	squidConf	delay_initial_bucket_level delay_parameters
+syn keyword	squidConf	delay_pools deny_info dns_children dns_defnames
+syn keyword	squidConf	dns_nameservers dns_testnames emulate_httpd_log
+syn keyword	squidConf	err_html_text fake_user_agent firewall_ip
+syn keyword	squidConf	forwarded_for forward_snmpd_port fqdncache_size
 syn keyword	squidConf	ftpget_options ftpget_program ftp_list_width
-syn keyword	squidConf	ftp_user half_closed_clients
-syn keyword	squidConf	hierarchy_stoplist htcp_port http_access
-syn keyword	squidConf	http_anonymizer httpd_accel httpd_accel_host
-syn keyword	squidConf	httpd_accel_port httpd_accel_uses_host_header
-syn keyword	squidConf	httpd_accel_with_proxy http_port
-syn keyword	squidConf	http_reply_access icp_access icp_hit_stale
-syn keyword	squidConf	icp_port icp_query_timeout ident_lookup
-syn keyword	squidConf	ident_lookup_access ident_timeout
-syn keyword	squidConf	incoming_http_average incoming_icp_average
-syn keyword	squidConf	inside_firewall ipcache_high ipcache_low
-syn keyword	squidConf	ipcache_size local_domain local_ip
+syn keyword	squidConf	ftp_passive ftp_user half_closed_clients
+syn keyword	squidConf	header_access header_replace hierarchy_stoplist
+syn keyword	squidConf	high_response_time_warning high_page_fault_warning
+syn keyword	squidConf	htcp_port http_access http_anonymizer httpd_accel
+syn keyword	squidConf	httpd_accel_host httpd_accel_port
+syn keyword	squidConf	httpd_accel_uses_host_header
+syn keyword	squidConf	httpd_accel_with_proxy http_port http_reply_access
+syn keyword	squidConf	icp_access icp_hit_stale icp_port
+syn keyword	squidConf	icp_query_timeout ident_lookup ident_lookup_access
+syn keyword	squidConf	ident_timeout incoming_http_average
+syn keyword	squidConf	incoming_icp_average inside_firewall ipcache_high
+syn keyword	squidConf	ipcache_low ipcache_size local_domain local_ip
 syn keyword	squidConf	logfile_rotate log_fqdn log_icp_queries
 syn keyword	squidConf	log_mime_hdrs maximum_object_size
 syn keyword	squidConf	maximum_single_addr_tries mcast_groups
 syn keyword	squidConf	mcast_icp_query_timeout mcast_miss_addr
-syn keyword	squidConf	mcast_miss_encode_key mcast_miss_port
-syn keyword	squidConf	memory_pools mime_table min_http_poll_cnt
-syn keyword	squidConf	min_icp_poll_cnt minimum_direct_hops
-syn keyword	squidConf	minimum_retry_timeout miss_access
-syn keyword	squidConf	negative_dns_ttl negative_ttl
-syn keyword	squidConf	neighbor_timeout neighbor_type_domain
+syn keyword	squidConf	mcast_miss_encode_key mcast_miss_port memory_pools
+syn keyword	squidConf	memory_pools_limit memory_replacement_policy
+syn keyword	squidConf	mime_table min_http_poll_cnt min_icp_poll_cnt
+syn keyword	squidConf	minimum_direct_hops minimum_object_size
+syn keyword	squidConf	minimum_retry_timeout miss_access negative_dns_ttl
+syn keyword	squidConf	negative_ttl neighbor_timeout neighbor_type_domain
 syn keyword	squidConf	netdb_high netdb_low netdb_ping_period
-syn keyword	squidConf	netdb_ping_rate no_cache passthrough_proxy
-syn keyword	squidConf	pconn_timeout pid_filename pinger_program
-syn keyword	squidConf	positive_dns_ttl prefer_direct proxy_auth
-syn keyword	squidConf	proxy_auth_realm query_icmp quick_abort
+syn keyword	squidConf	netdb_ping_rate never_direct no_cache
+syn keyword	squidConf	passthrough_proxy pconn_timeout pid_filename
+syn keyword	squidConf	pinger_program positive_dns_ttl prefer_direct
+syn keyword	squidConf	proxy_auth proxy_auth_realm query_icmp quick_abort
 syn keyword	squidConf	quick_abort quick_abort_max quick_abort_min
-syn keyword	squidConf	quick_abort_pct range_offset_limit
-syn keyword	squidConf	read_timeout redirect_children
-syn keyword	squidConf	redirect_program
+syn keyword	squidConf	quick_abort_pct range_offset_limit read_timeout
+syn keyword	squidConf	redirect_children redirect_program
 syn keyword	squidConf	redirect_rewrites_host_header reference_age
 syn keyword	squidConf	reference_age refresh_pattern reload_into_ims
-syn keyword	squidConf	request_size request_timeout
+syn keyword	squidConf	request_body_max_size request_size request_timeout
 syn keyword	squidConf	shutdown_lifetime single_parent_bypass
 syn keyword	squidConf	siteselect_timeout snmp_access
 syn keyword	squidConf	snmp_incoming_address snmp_port source_ping
@@ -86,16 +86,19 @@
 syn keyword	squidConf	store_objects_per_bucket strip_query_terms
 syn keyword	squidConf	swap_level1_dirs swap_level2_dirs
 syn keyword	squidConf	tcp_incoming_address tcp_outgoing_address
-syn keyword	squidConf	tcp_recv_bufsize test_reachability
-syn keyword	squidConf	udp_hit_obj udp_hit_obj_size
-syn keyword	squidConf	udp_incoming_address udp_outgoing_address
-syn keyword	squidConf	unique_hostname unlinkd_program
-syn keyword	squidConf	uri_whitespace useragent_log visible_hostname
-syn keyword	squidConf	wais_relay wais_relay_host wais_relay_port
+syn keyword	squidConf	tcp_recv_bufsize test_reachability udp_hit_obj
+syn keyword	squidConf	udp_hit_obj_size udp_incoming_address
+syn keyword	squidConf	udp_outgoing_address unique_hostname
+syn keyword	squidConf	unlinkd_program uri_whitespace useragent_log
+syn keyword	squidConf	visible_hostname wais_relay wais_relay_host
+syn keyword	squidConf	wais_relay_port
 
 syn keyword	squidOpt	proxy-only weight ttl no-query default
 syn keyword	squidOpt	round-robin multicast-responder
 syn keyword	squidOpt	on off all deny allow
+syn keyword	squidopt	via parent no-digest heap lru realm
+syn keyword	squidopt	children credentialsttl none disable
+syn keyword	squidopt	offline_toggle diskd q1 q2
 
 " Security Actions for cachemgr_passwd
 syn keyword	squidAction	shutdown info parameter server_list
@@ -108,6 +111,7 @@
 syn keyword	squidAcl	url_regex urlpath_regex referer_regex port proto
 syn keyword	squidAcl	req_mime_type rep_mime_type
 syn keyword	squidAcl	method browser user src dst
+syn keyword	squidAcl	time dstdomain ident snmp_community
 
 syn match	squidNumber	"\<\d\+\>"
 syn match	squidIP		"\<\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\>"