updated for version 7.0130
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 7d8a51a..0525291 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 Aug 12
+*spell.txt*	For Vim version 7.0aa.  Last change: 2005 Aug 15
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -195,6 +195,14 @@
 'spellfile' are only used when all entries in "spelllang" specify the same
 region (not counting files specified by their .spl name).
 
+Specific exception: For German these special regions are used:
+	de		all German words accepted
+	de_de		old and new spelling
+	de_19		old spelling
+	de_20		new spelling
+	de_at		Austria
+	de_ch		Switzerland
+
 
 SPELL FILES						*spell-load*
 
@@ -335,6 +343,27 @@
 Note that the default scripts don't set 'spellcapcheck' if it was changed from
 the default value.  This assumes the user prefers another value then.
 
+
+DOUBLE SCORING						*spell-double-scoring*
+
+The 'spellsuggest' option can be used to select "double" scoring.  This
+mechanism is based on the principle that there are two kinds of spelling
+mistakes:
+
+1. You know how to spell the word, but mistype something.  This results in a
+   small editing distance (character swapped/omitted/inserted) and possibly a
+   word that sounds completely different.
+
+2. You don't know how to spell the word and type something that sounds right.
+   The edit distance can be big but the word is similar after sound-folding.
+
+Since scores for these two mistakes will be very different we use a list
+for each and mix them.
+
+The sound-folding is slow and people that know the language won't make the
+second kind of mistakes.  Therefore 'spellsuggest' can be set to select the
+preferred method for scoring the suggestions.
+
 ==============================================================================
 3. Generating a spell file				*spell-mkspell*
 
@@ -409,6 +438,11 @@
 			and producing an output file in the same directory
 			that has ".{enc}.spl" appended.
 
+Vim will report the number of duplicate words.  This might be a mistake in the
+list of words.  But sometimes it is used to have different prefixes and
+suffixes for the same basic word to avoid them combining (e.g. Czech uses
+this).
+
 Since you might want to change a Myspell word list for use with Vim the
 following procedure is recommended:
 
@@ -716,9 +750,27 @@
 but in lower case.  Thus when the chop string is used to allow the following
 word to start with an upper case letter.
 
+It is not possible to use PFXPOSTPONE together with COMPOUNDFLAG or
+COMPOUNDFLAGS.
 
-KEEP-CASE WORDS
-							*spell-affix-KEP*
+
+WORDS WITH A SLASH					*spell-affix-SLASH*
+
+The slash is used in the .dic file to separate the basic word from the affix
+letters that can be used.  Unfortunately, this means you cannot use a slash in
+a word.  Thus "TCP/IP" cannot be a word.  To work around that you can define a
+replacement character for the slash.  Example:
+
+	SLASH , ~
+
+Now you can use "TCP,IP" to add the word "TCP/IP".
+
+Of course, the letter used should itself not appear in any word!  The letter
+must be ASCII, thus a single byte.
+
+
+KEEP-CASE WORDS						*spell-affix-KEP*
+
 In the affix file a KEP line can be used to define the affix name used for
 keep-case words.  Example:
 
@@ -727,8 +779,8 @@
 See above for an example |spell-affix-vim|.
 
 
-RARE WORDS
-							*spell-affix-RAR*
+RARE WORDS						*spell-affix-RAR*
+
 In the affix file a RAR line can be used to define the affix name used for
 rare words.  Example:
 
@@ -740,8 +792,8 @@
 highlighted as rare.
 
 
-BAD WORDS
-							*spell-affix-BAD*
+BAD WORDS						*spell-affix-BAD*
+
 In the affix file a BAD line can be used to define the affix name used for
 bad words.  Example:
 
@@ -756,6 +808,125 @@
 word as good.
 
 
+COMPOUND WORDS						*spell-affix-compound*
+
+A compound word is a longer word made by concatenating words.  To specify
+which words may be concatenated a character is used.  This character is put in
+the list of affixes after the word.  We will call this character a flag here.
+Obviously these flags must be different from any affix IDs used.
+
+							*spell-COMPOUNDFLAG*
+The Myspell compatible method uses one flag, specified with COMPOUNDFLAG.
+All words with this flag combine in any order and without limit in length.
+This means there is no control over which word comes first.  Example:
+	COMPOUNDFLAG c ~
+
+							*spell-COMPOUNDFLAGS*
+The method added by Vim allows specifying which words can be prepended to
+other words, and which words can be appended to other words.  This is a list
+of comma separated items.  Each item may contain zero or more dashes and plus
+signs.
+
+NOTE: At this moment COMPOUNDFLAGS has not been implemented yet!
+
+An item without dashes specifies words that combine in any order and as often
+as possible.  Example:
+	COMPOUNDFLAGS c,m ~
+
+This allows all words with the "c" flag to be combined and all words with the
+"m" flag to be combined, but a word with the "c" flag doesn't combine with a
+word with the "m" flag.
+
+Flags that are put together, without a separating comma, are considered
+interchangable.  Example:
+	COMPOUNDFLAGS cm ~
+
+This allows all words with the "c" and/or "m" flag to be combined.
+
+An item with one dash specifies flags for a leading word and flags for a
+trailing word.  Thus only two-word combinations are made.  Example:
+	COMPOUNDFLAGS f-d ~
+
+Here the 'f' flag can be used for food and 'd' for dishes, such that you can
+use these words in the dictionary:
+	tomato/f ~
+	onion/f~
+	soup/d~
+	salat/d~
+
+Which makes the words:
+	tomato
+	onion
+	soup
+	salat
+	tomatosoup
+	tomatosalat
+	onionsoup
+	onionsalat
+
+Note that something like "souptomato" is not possible.  And that it's actually
+easier to list all the words if you have only this few.
+
+More dashes can be used to allow more words to combine.  For example:
+	COMPOUNDFLAGS f-d,f-f-d ~
+
+Would allow "tomatoonionsoup" (OK, so this is a bad example, but you get the
+idea).
+
+When a word can be used an undetermined number of times use a plus instead of
+a dash.  Example:
+	COMPOUNDFLAGS f+d ~
+
+Then you can make tasty "oniononiontomatotomatosoup".
+
+The "+" may also appear at the end, which means that the last flags can be
+repeated many times.  Example:
+	COMPOUNDFLAGS f-d+ ~
+
+Which allows the use of "onionsoupsoupsoupsoupsoupsoup".
+
+							*spell-COMPOUNDMIN*
+The minimal length of a word used for concatenation is specified with
+COMPOUNDMIN.  Example:
+	COMPOUNDMIN 5 ~
+
+When omitted a minimal length of 3 bytes is used.  Obviously you could just
+leave out the compound flag from short words instead, this feature is present
+for compatibility with Myspell.
+
+							*spell-CMP*
+NOTE: At this moment CMP has not been implemented yet!
+
+Sometimes it is necessary to change a word when concatenating it to another,
+by removing a few letters, inserting something or both.  It can also be useful
+to restrict concatenation to words that match a pattern.  For this purpose CMP
+items can be used.  They look like this:
+	CMP {flag} {strip} {add} {cond} {cond2}
+
+	{flag}		the flag, as used in COMPOUNDFLAGS for the lead word
+	{strip}		text to remove from the end of the lead word (zero
+			for no stripping)
+	{add}		text to insert between the words (zero for no
+			addition)
+	{cond}		condition to match at the end of the lead word
+	{cond2}		condition to match at the start of the following word
+
+This is exactly the same as what is used for SFX and PFX items, except there
+is an extra condition.  Example:
+	CMP f 0 - . . ~
+
+When used with the food and dish word list above, this means that a dash is
+inserted after each food item.  Thus you get "onion-soup" and
+"onion-tomato-salat".
+
+When there are CMP items for a compound flag the concatenation is only done
+when a CMP item matches.
+
+When there are no CMP items for a compound flag, then all words will be
+concatenated, as if there was an item:
+	CMP {flag} 0 0 . .
+
+
 REPLACEMENTS						*spell-affix-REP*
 
 In the affix file REP items can be used to define common mistakes.  This is