diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 3d47c6b..678d63e 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0aa.  Last change: 2005 Jun 28
+*options.txt*	For Vim version 7.0aa.  Last change: 2005 Jun 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1443,7 +1443,8 @@
 	|fold-marker|.
 
 			*'compatible'* *'cp'* *'nocompatible'* *'nocp'*
-'compatible' 'cp'	boolean	(default on, off when a .vimrc file is found)
+'compatible' 'cp'	boolean	(default on, off when a .vimrc or .gvimrc file
+								is found)
 			global
 			{not in Vi}
 	This option has the effect of making Vim either more Vi-compatible, or
@@ -1458,12 +1459,13 @@
 	options.  This default was chosen for those people who want to use Vim
 	just like Vi, and don't even (want to) know about the 'compatible'
 	option.
-	When a ".vimrc" file is found while Vim is starting up, this option is
-	switched off, and all options that have not been modified will be set
-	to the Vim defaults.  Effectively, this means that when a ".vimrc"
-	file exists, Vim will use the Vim defaults, otherwise it will use the
-	Vi defaults.  (Note: This doesn't happen for the system-wide vimrc
-	file).  Also see |compatible-default| and |posix-compliance|.
+	When a ".vimrc" or ".gvimrc" file is found while Vim is starting up,
+	this option is switched off, and all options that have not been
+	modified will be set to the Vim defaults.  Effectively, this means
+	that when a ".vimrc" or ".gvimrc" file exists, Vim will use the Vim
+	defaults, otherwise it will use the Vi defaults.  (Note: This doesn't
+	happen for the system-wide vimrc or gvimrc file).  Also see
+	|compatible-default| and |posix-compliance|.
 	You can also set this option with the "-C" argument, and reset it with
 	"-N".  See |-C| and |-N|.
 	Switching this option off makes the Vim defaults be used for options
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 606a030..1a9e64f 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 29
+*spell.txt*	For Vim version 7.0aa.  Last change: 2005 Jun 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -7,8 +7,9 @@
 Spell checking						*spell*
 
 1. Quick start			|spell-quickstart|
-2. Generating a spell file	|spell-mkspell|
-3. Spell file format		|spell-file-format|
+2. Remarks on spell checking	|spell-remarks|
+3. Generating a spell file	|spell-mkspell|
+4. Spell file format		|spell-file-format|
 
 {Vi does not have any of these commands}
 
@@ -36,8 +37,6 @@
 							*]s* *E756*
 ]s			Move to next misspelled word after the cursor.
 			A count before the command can be used to repeat.
-			This uses the @Spell and @NoSpell clusters from syntax
-			highlighting, see |spell-syntax|.
 
 							*[s*
 [s			Like "]s" but search backwards, find the misspelled
@@ -72,9 +71,9 @@
 :spellw[rong] {word}	Add [word} as a wrong (bad) word to 'spellfile'.
 
 After adding a word to 'spellfile' with the above commands its associated
-".spl" file will automatically be updated.  If you edit 'spellfile' manually
-you need to use the |:mkspell| command.  This sequence of commands mostly
-works well: >
+".spl" file will automatically be updated and reloaded.  If you change
+'spellfile' manually you need to use the |:mkspell| command.  This sequence of
+commands mostly works well: >
 	:exe 'e ' . &spellfile
 <	(make changes to the spell file) >
 	:mkspell! %
@@ -83,12 +82,11 @@
 
 
 Finding suggestions for bad words:
-
 							*z?*
 z?			For the word under/after the cursor suggest correctly
-			spelled words.  This also works to find alternative
-			for words that are not highlighted as bad words, e.g.,
-			when the word after it is bad.
+			spelled words.  This also works to find alternatives
+			for a word that is not highlighted as a bad word,
+			e.g., when the word after it is bad.
 			The results are sorted on similarity to the word
 			under/after the cursor.
 			This may take a long time.  Hit CTRL-C when you are
@@ -99,7 +97,7 @@
 			<Enter> if you don't want to replace.  You can also
 			use the mouse to click on your choice (only works if
 			the mouse can be used in Normal mode and when there
-			are no line wraps!).  Click on the first (header) line
+			are no line wraps).  Click on the first (header) line
 			to cancel.
 			If 'verbose' is non-zero a score will be displayed to
 			indicate the likeliness to the badly spelled word (the
@@ -115,17 +113,18 @@
 The 'spellsuggest' option influences how the list of suggestions is generated
 and sorted.  See |'spellsuggest'|.
 
+==============================================================================
+2. Remarks on spell checking				*spell-remarks*
 
 PERFORMANCE
 
-Note that Vim does on-the-fly spell checking.  To make this work fast the word
-list is loaded in memory.  Thus this uses a lot of memory (1 Mbyte or more).
-There might also be a noticeable delay when the word list is loaded, which
-happens when 'spell' is set and when 'spelllang' is set while 'spell' was
-already set.  To minimize the delay each word list is only loaded once, it
-is not deleted when 'spelllang' is made empty or 'spell' is reset.  When
-'encoding' is set all the word lists are reloaded, thus you may notice a delay
-then too.
+Vim does on-the-fly spell checking.  To make this work fast the word list is
+loaded in memory.  Thus this uses a lot of memory (1 Mbyte or more).  There
+might also be a noticeable delay when the word list is loaded, which happens
+when 'spell' is set and when 'spelllang' is set while 'spell' was already set.
+To minimize the delay each word list is only loaded once, it is not deleted
+when 'spelllang' is made empty or 'spell' is reset.  When 'encoding' is set
+all the word lists are reloaded, thus you may notice a delay then too.
 
 
 REGIONS
@@ -272,9 +271,10 @@
 
     spellbadword()	find badly spelled word at the cursor
     spellsuggest()	get list of spelling suggestions
+    soundfold()		get the sound-a-like version of a word
 
 ==============================================================================
-2. Generating a spell file				*spell-mkspell*
+3. Generating a spell file				*spell-mkspell*
 
 Vim uses a binary file format for spelling.  This greatly speeds up loading
 the word list and keeps it small.
@@ -284,7 +284,7 @@
 find them here:
 	http://lingucomponent.openoffice.org/spell_dic.html
 You can also use a plain word list.  The results are the same, the choice
-depends on what you find.
+depends on what word lists you can find.
 
 Make sure your current locale is set properly, otherwise Vim doesn't know what
 characters are upper/lower case letters.  If the locale isn't available (e.g.,
@@ -296,7 +296,7 @@
 							*:mksp* *:mkspell*
 :mksp[ell][!] [-ascii] {outname} {inname} ...
 			Generate a Vim spell file word lists.  Example: >
-		:mkspell nl nl_NL.words
+		:mkspell /tmp/nl nl_NL.words
 <								*E751*
 			When {outname} ends in ".spl" it is used as the output
 			file name.  Otherwise it should be a language name,
@@ -304,7 +304,7 @@
 			written will be "{outname}.{encoding}.spl", where
 			{encoding} is the value of the 'encoding' option.
 
-			When the output file already exists [!] must be added
+			When the output file already exists [!] must be used
 			to overwrite it.
 
 			When the [-ascii] argument is present, words with
@@ -330,18 +330,18 @@
 			the optimal word tree (Polish requires a few hundred
 			Mbyte).  The final result will be much smaller.
 
-			When the spell file was written all currently used
-			spell files will be reloaded.
+			After the spell file was written and it was being used
+			in a buffer it will be reloaded automatically.
 
 :mksp[ell] [-ascii] {name}.{enc}.add
 			Like ":mkspell" above, using {name}.{enc}.add as the
-			input file and producing an output file that has
-			".spl" appended.
+			input file and producing an output file in the same
+			directory that has ".spl" appended.
 
 :mksp[ell] [-ascii] {name}
 			Like ":mkspell" above, using {name} as the input file
-			and producing an output file that has ".{enc}.spl"
-			appended.
+			and producing an output file in the same directory
+			that has ".{enc}.spl" appended.
 
 Since you might want to change a Myspell word list for use with Vim the
 following procedure is recommended:
@@ -351,9 +351,11 @@
 3. Change the xx_YY.aff and xx_YY.dic files to remove bad words, add missing
    words, define word characters with FOL/LOW/UPP, etc.  The distributed
    "src/spell/*.diff" files can be used.
-4. Set 'encoding' to the desired encoding and use |:mkspell| to generate the
-   Vim spell file.
-5. Try out the spell file with ":set spell spelllang=xx_YY".
+4. Start Vim with the right locale and use |:mkspell| to generate the Vim
+   spell file.
+5. Try out the spell file with ":set spell spelllang=xx" if you wrote it in
+   a spell directory in 'runtimepath, or ":set spelllang=xx.enc.spl" if you
+   wrote it somewhere else.
 
 When the Myspell files are updated you can merge the differences:
 1. Obtain the new Myspell files as xx_YY.new.aff and xx_UU.new.dic.
@@ -372,8 +374,8 @@
 							*:spelldump* *:spelld*
 :spelld[ump]		Open a new window and fill it with all currently valid
 			words.
-			Note: For some languages the result may be huge and
-			Vim may run out of memory.
+			Note: For some languages the result may be enormous,
+			causing Vim to run out of memory.
 
 The format of the word list is used |spell-wordlist-format|.  You should be
 able to read it with ":mkspell" to generate one .spl file that includes all
@@ -382,46 +384,59 @@
 Only words for the current region are included.  No "/regions" line is
 generated.
 
-Comment lines are used to indicate which .spl file the words came from.
+Comment lines with the name of the .spl file are used as a header above the
+words that were generated from that .spl file.
 
 ==============================================================================
-3. Spell file format					*spell-file-format*
+4. Spell file format					*spell-file-format*
 
 This is the format of the files that are used by the person who creates and
 maintains a word list.
 
 Note that we avoid the word "dictionary" here.  That is because the goal of
 spell checking differs from writing a dictionary (as in the book).  For
-spelling we need a list of words that are OK, thus need not to be highlighted.
-Names will not appear in a dictionary, but do appear in a word list.  And
-some old words are rarely used and are common misspellings.  These do appear
-in a dictionary but not in a word list.
+spelling we need a list of words that are OK, thus should not to be
+highlighted.  Person and company names will not appear in a dictionary, but do
+appear in a word list.  And some old words are rarely used while they are
+common misspellings.  These do appear in a dictionary but not in a word list.
 
-There are two formats: one with affix compression and one without.  The files
-with affix compression are used by Myspell (Mozilla and OpenOffice.org).  This
-requires two files, one with .aff and one with .dic extension.  The second
-format is a list of words.
+There are two formats: A straigth list of words and a list using affix
+compression.  The files with affix compression are used by Myspell (Mozilla
+and OpenOffice.org).  This requires two files, one with .aff and one with .dic
+extension.
 
 
-FORMAT OF WORD LIST				*spell-wordlist-format*
+FORMAT OF STRAIGHT WORD LIST				*spell-wordlist-format*
 
 The words must appear one per line.  That is all that is required.
+
 Additionally the following items are recognized:
+
 - Empty and blank lines are ignored.
+
 - Lines starting with a # are ignored (comment lines).
+
 - A line starting with "/encoding=", before any word, specifies the encoding
   of the file.  After the second '=' comes an encoding name.  This tells Vim
-  to setup conversion from the specified encoding to 'encoding'.
+  to setup conversion from the specified encoding to 'encoding'.  Thus you can
+  use one word list for several target encodings.
+
 - A line starting with "/regions=" specifies the region names that are
   supported.  Each region name must be two ASCII letters.  The first one is
   region 1.  Thus "/regions=usca" has region 1 "us" and region 2 "ca".
-  In an addition word list the list should be equal to the main word list!
+  In an addition word list the region names should be equal to the main word
+  list!
+
 - A line starting with "/?" specifies a word that should be marked as rare.
+
 - A line starting with "/!" specifies a word that should be marked as bad.
+
 - A line starting with "/=" specifies a word where case must match exactly.
   A "?" or "!" may be following: "/=?" and "/=!".
+
 - Digits after "/" indicate the regions in which the word is valid.  If no
   regions are specified the word is valid in all regions.
+
 - Other lines starting with '/' are reserved for future use.  The ones that
   are not recognized are ignored (but you do get a warning message).
 
@@ -492,7 +507,7 @@
 position will not match. When some of the other letters are upper-case it will
 not match either.
 
-The same word with all upper-case characters will always be OK.
+The word with all upper-case characters will always be OK.
 
 	word list	matches			does not match ~
 	als		als Als ALS		ALs AlS aLs aLS
@@ -509,7 +524,9 @@
 word starting with a non-word character probably won't work.
 
 After the word there is an optional slash and flags.  Most of these flags are
-letters that indicate the affixes that can be used with this word.
+letters that indicate the affixes that can be used with this word.  These are
+specified with SFX and PFX lines in the .aff file.  See the Myspell
+documentation.
 
 							*spell-affix-vim*
 A flag that Vim adds and is not in Myspell is the flag defined with KEP in the
@@ -527,7 +544,8 @@
 word list.  This is compatible with Myspell.  For Vim the encoding may also be
 something else, any encoding that "iconv" supports.  The "SET" line must
 specify the name of the encoding.  When using a multi-byte encoding it's
-possible to use more different affixes.
+possible to use more different affixes (but Myspell doesn't support that, thus
+you may not want to use it anyway).
 
 
 CHARACTER TABLES
@@ -677,11 +695,14 @@
 	REP ch k ~
 
 The first line specifies the number of REP lines following.  Vim ignores it.
+Don't include simple one-character replacements or swaps.  Vim will try these
+anyway.  You can include whole words if you want to, but you might want to use
+the "file:" item in 'spellsuggest' instead.
 
 
 SIMILAR CHARACTERS					*spell-affix-MAP*
 
-In the affix file MAP items can be used to define letters that very much
+In the affix file MAP items can be used to define letters that are very much
 alike.  This is mostly used for a letter with different accents.  This is used
 to prefer suggestions with these letters substituted.  Example:
 
@@ -691,22 +712,23 @@
 
 The first line specifies the number of MAP lines following.  Vim ignores it.
 
-A letter must only appear in one of the MAP items.  It's a bit more efficient
-if the first letter is ASCII or at least one without accents.
+Each letter must appear in only one of the MAP items.  It's a bit more
+efficient if the first letter is ASCII or at least one without accents.
 
 
-SOUNDS-A-LIKE						*spell-affix-SAL*
+SOUND-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:
+Simplistic example:
 
 	SAL CIA                  X ~
 	SAL CH                   X ~
 	SAL C                    K ~
 	SAL K                    K ~
 
-An explantion how it works can be found in the Aspell manual:
+There are a few rules and this can become quite complicated.  An explantion
+how it works can be found in the Aspell manual:
 http://aspell.net/man-html/Phonetic-Code.html.
 
 There are a few special items:
@@ -723,7 +745,7 @@
 The SAL mechanism is complex and slow.  A simpler mechanism is mapping all
 characters to another character, mapping similar sounding characters to the
 same character.  At the same time this does case folding.  You can not have
-SAL items at the same time.
+both SAL items and simple soundfolding.
 
 There are two items required: one to speficy the characters that are mapped
 and one that specifies the characters they are mapped to.  They must have
@@ -733,9 +755,9 @@
     SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkes ~
 
 In the example all vowels are mapped to the same character 'e'.  Another
-method is to leave out all vowels.  Some characters that sound nearly the same
-and are often mixed up, such as 'm' and 'n', are mapped to the same character.
-Don't do this too much, all words will start looking alike.
+method would be to leave out all vowels.  Some characters that sound nearly
+the same and are often mixed up, such as 'm' and 'n', are mapped to the same
+character.  Don't do this too much, all words will start looking alike.
 
 Characters that do not appear in SOFOFROM will be left out, except that all
 white space is replaced by one space.  Sequences of the same character in
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 1d56980..7335d30 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -1,4 +1,4 @@
-*starting.txt*  For Vim version 7.0aa.  Last change: 2005 May 31
+*starting.txt*  For Vim version 7.0aa.  Last change: 2005 Jun 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -890,7 +890,8 @@
 resetting other options (see 'compatible').  But only the options that have
 not been set or reset will be changed.  This has the same effect like the
 value of 'compatible' had this value when starting Vim.  Note that this
-doesn't happen for the system-wide vimrc file.
+doesn't happen for the system-wide vimrc file.  It does also happen for gvimrc
+files.
 
 But there is a side effect of setting or resetting 'compatible' at the moment
 a .vimrc file is found: Mappings are interpreted the moment they are
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 67930a2..255fec9 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6293,6 +6293,7 @@
 spell-midword	spell.txt	/*spell-midword*
 spell-mkspell	spell.txt	/*spell-mkspell*
 spell-quickstart	spell.txt	/*spell-quickstart*
+spell-remarks	spell.txt	/*spell-remarks*
 spell-syntax	spell.txt	/*spell-syntax*
 spell-wordlist-format	spell.txt	/*spell-wordlist-format*
 spell.txt	spell.txt	/*spell.txt*
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 9b47dca..c11c012 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2005 Jun 29
+" Last Change:	2005 Jun 30
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -1585,7 +1585,27 @@
 au BufNewFile,BufRead *.ti			setf terminfo
 
 " TeX
-au BufNewFile,BufRead *.tex,*.latex,*.sty,*.dtx,*.ltx,*.bbl	setf tex
+au BufNewFile,BufRead *.latex,*.sty,*.dtx,*.ltx,*.bbl	setf tex
+au BufNewFile,BufRead *.tex			call s:FTtex()
+
+fun! s:FTtex()
+  let n = 1
+  while n < 10 && n < line("$")
+    let line = getline(n)
+    if line =~ '^\s*\\\%(documentclass\>\|usepackage\>\|begin{\)'
+      setf tex
+      return
+    elseif line =~ '^\s*\\\%(start\l\+\|setup\l\+\|usemodule\)\>'
+      setf context
+      return
+    endif
+    let n = n + 1
+  endwhile
+  setf tex
+endfun
+
+" Context
+au BufNewFile,BufRead tex/context/*/*.tex	setf context
 
 " Texinfo
 au BufNewFile,BufRead *.texinfo,*.texi,*.txi	setf texinfo
@@ -1746,7 +1766,7 @@
 
 fun! s:FTy()
   let n = 1
-  while n < 10
+  while n < 10 && n < line("$")
     if getline(n) =~ '^\s*\(#\|class\>\)'
       setf racc
       return
diff --git a/runtime/indent/tcsh.vim b/runtime/indent/tcsh.vim
index 89403c9..a33bdb7 100644
--- a/runtime/indent/tcsh.vim
+++ b/runtime/indent/tcsh.vim
@@ -1,6 +1,6 @@
 " Vim indent file
 " Language:		C-shell (tcsh)
-" Maintainor:		Gautam Iyer <gautam@math.uchicago.edu>
+" Maintainer:		Gautam Iyer <gautam@math.uchicago.edu>
 " Last Modified:	Wed 04 Feb 2004 04:36:07 PM CST
 
 " Only load this indent file when no other was loaded.
