updated for version 7.0101
diff --git a/Filelist b/Filelist
index a4575c1..c591d54 100644
--- a/Filelist
+++ b/Filelist
@@ -122,8 +122,6 @@
 		src/proto/undo.pro \
 		src/proto/version.pro \
 		src/proto/window.pro \
-		src/spell/*.diff \
-		src/spell/Makefile \
 
 
 # source files for Unix only
@@ -684,6 +682,9 @@
 		runtime/tutor/tutor.ru.* \
 		runtime/tutor/tutor.zh.* \
 		runtime/spell/README.txt \
+		runtime/spell/??/*.diff \
+		runtime/spell/??/main.aap \
+		runtime/spell/main.aap \
 
 # generic language files, binary
 LANG_GEN_BIN = \
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 9ee13e3..9eb1ba6 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 29
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 03
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -241,15 +241,23 @@
 
 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"
+exception: When comparing a number with a string they are considered
+different.  There is no automatic type conversion, as with using "==" on
+variables.  Example: >
+	echo 4 == "4"
 <	1 >
-	echo [4] == ["4x"]
+	echo [4] == ["4"]
 <	0
 
-This is to fix the odd behavior of == that can't be changed for backward
-compatibility reasons.
+Thus comparing Lists is more strict than comparing numbers and strings.  You
+can compare simple values this way too by putting them in a string: >
+
+	:let a = 5
+	:let b = "5"
+	echo a == b
+<	1 >
+	echo [a] == [b]
+<	0
 
 
 List unpack ~
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 9ccfbef..46d1b70 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 Jul 02
+*spell.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -27,7 +27,7 @@
 
 The words that are not recognized are highlighted with one of these:
 	SpellBad	word not recognized			|hl-SpellBad|
-	SpellCap	word not capatilized			|hl-SpellCap|
+	SpellCap	word not capitalised			|hl-SpellCap|
 	SpellRare	rare word				|hl-SpellRare|
 	SpellLocal	wrong spelling for selected region	|hl-SpellLocal|
 
@@ -321,6 +321,10 @@
 You can also use a plain word list.  The results are the same, the choice
 depends on what word lists you can find.
 
+If you install Aap (from www.a-a-p.org) you can use the recipes in the
+runtime/spell/??/ directories.  Aap will take care of downloading the files,
+apply patches needed for Vim and build the .spl file.
+
 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.,
 when using an MS-Windows codepage on Unix) add tables to the .aff file
@@ -389,7 +393,7 @@
 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
+   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:
@@ -436,7 +440,7 @@
 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: A straigth list of words and a list using affix
+There are two formats: A straight 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.
@@ -760,7 +764,7 @@
 	SAL C                    K ~
 	SAL K                    K ~
 
-There are a few rules and this can become quite complicated.  An explantion
+There are a few rules and this can become quite complicated.  An explanation
 how it works can be found in the Aspell manual:
 http://aspell.net/man-html/Phonetic-Code.html.
 
@@ -780,7 +784,7 @@
 same character.  At the same time this does case folding.  You can not have
 both SAL items and simple soundfolding.
 
-There are two items required: one to speficy the characters that are mapped
+There are two items required: one to specify the characters that are mapped
 and one that specifies the characters they are mapped to.  They must have
 exactly the same number of characters.  Example:
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 2b19ebc..f231deb 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -5148,7 +5148,6 @@
 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*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 4d0e93c..9d0a966 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 Jul 02
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 03
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -81,9 +81,6 @@
     helpfile doc/myscript.txt
   For the "helpfile" item ":helptags" is run.
 
-For List comparing, consider [4] and ['4'] different? (Servatius Brandt)
-Also allows strict comparing for ordinary variables.
-
 Patch to alternate fold highlighting.  (Anthony Iano-Fletcher, 2005 May 12)
 More levels?
 
@@ -96,40 +93,6 @@
 
 PLANNED FOR VERSION 7.0:
 
-- Spell checking todo's:
-    - When making suggestions check for 'spellcapcheck' and empty line to
-      figure out the word should be capitalised.
-    - Distribution: Need wordlists for many languages; "language pack"
-      Put them on the ftp site, ready to download.  Include README for
-      copyrights.
-    - Work together with OpenOffice.org to update the wordlists.  (Adri
-      Verhoef, Aad Nales)  Setup vim-spell maillist?
-    - Charles Campbell asks for method to add "contained" groups to
-      existing syntax items (to add @Spell).
-      Add ":syntax contains {pattern} add=@Spell" command?  A bit like ":syn
-      cluster" but change the contains list directly for matching syntax
-      items.
-    - Install spell files with src/main.aap.
-    Later:
-    - References: MySpell library (in OpenOffice.org).
-	http://spellchecker.mozdev.org/source.html
-	http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
-      author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
-    - Make "en-rare" spell file?  Ask Charles Campbell.
-    - The English dictionaries for different regions are not consistent in
-      their use of words with a dash.
-    - Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
-      obtain).  But new Myspell wordlist will come (Hagen)
-    - Insert mode completion mechanism that uses the spell word lists.
-    - Add hl groups to 'spelllang'?
-	:set spelllang=en_us,en-rare/SpellRare,en-math/SpellMath
-      More complicated: Regions with different languages?  E.g., comments
-      in English, strings in German (po file).
-    - 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, or that only certain
-      words combine.
-
 -   Support using "**" in filename for ":next", ":vimgrep", etc., so that a
     directory tree can be searched.
 -   REFACTORING: The main() function is very long.  Move parts to separate
@@ -1309,6 +1272,33 @@
     window can be displayed. (Eduard)
 
 
+Spell checking:
+9   Work together with OpenOffice.org to update the wordlists.  (Adri Verhoef,
+    Aad Nales)  Setup vim-spell maillist?
+8   Charles Campbell asks for method to add "contained" groups to existing
+    syntax items (to add @Spell).
+    Add ":syntax contains {pattern} add=@Spell" command?  A bit like ":syn
+    cluster" but change the contains list directly for matching syntax items.
+8   Install spell files with src/main.aap.
+-   References: MySpell library (in OpenOffice.org).
+	http://spellchecker.mozdev.org/source.html
+	http://whiteboard.openoffice.org/source/browse/whiteboard/lingucomponent/source/spellcheck/myspell/
+      author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
+8   Make "en-rare" spell file?  Ask Charles Campbell.
+8   The English dictionaries for different regions are not consistent in their
+    use of words with a dash.
+8   Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
+    obtain).  But new Myspell wordlist will come (Hagen)
+7   Insert mode completion mechanism that uses the spell word lists.
+8   Add hl groups to 'spelllang'?
+	:set spelllang=en_us,en-rare/SpellRare,en-math/SpellMath
+    More complicated: Regions with different languages?  E.g., comments
+    in English, strings in German (po file).
+8   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, or that only certain words combine.
+
+
 Diff mode:
 8   Use diff mode to show the changes made in a buffer (compared to the file).
     Use an unnamed buffer, like doing:
diff --git a/runtime/spell/README.txt b/runtime/spell/README.txt
index ff56acc..8ea5272 100644
--- a/runtime/spell/README.txt
+++ b/runtime/spell/README.txt
@@ -7,929 +7,6 @@
 The files used as input for the spell files come from the OpenOffice.org spell
 files.  Most of them go under the LGPL or a similar license.
 
-Copyright notices for specific languages follow.  Note that the files for
-different regions are merged, both to save space and to make it possible to
-highlight words for another region different from bad words.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-en_US
-
-20040623 release.
---
-This dictionary is based on a subset of the original
-English wordlist created by Kevin Atkinson for Pspell 
-and  Aspell and thus is covered by his original 
-LGPL license.  The affix file is a heavily modified
-version of the original english.aff file which was
-released as part of Geoff Kuenning's Ispell and as 
-such is covered by his BSD license.
-
-Thanks to both authors for there wonderful work.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-en_AU
-
-This dictionary was based on the en_GB Myspell dictionary 
-which in turn was initially based on a subset of the 
-original English wordlist created by Kevin Atkinson for 
-Pspell and  Aspell and thus is covered by his original 
-LGPL licence. 
-
-The credit for this en_AU dictionary goes to:
-
-Kelvin Eldridge (maintainer)
-Jean Hollis Weber
-David Wilson
-
-- Words incorrect in Australian English removed
-- a list from the previously removed words with corrected spelling was added
-- a list of major rivers was added
-- a list of place names was added
-- a list of Australian mammals was added 
-- a list of Aboriginal/Koori words commonly used was added
-
-A total of 119,267 words are now recognized 
-by the dictionary.
-
-Of course, special thanks go to the editors of the 
-en_GB dictionary (David Bartlett, Brian Kelk and 
-Andrew Brown) which provided the starting point
-for this dictionary.
-
-The affix file is currently a duplicate of the en_AU.aff
-created completely from scratch by David Bartlett and 
-Andrew Brown, based on the published 
-rules for MySpell and is also provided under the LGPL.
-
-If you find omissions or bugs or have new words to 
-add to the dictionary, please contact the en_AU 
-maintainer at:
-
- "Kelvin" <audictionary@onlineconnections.com.au>
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-en_CA
-
-The dictionary file was created using the "final" English and Canadian SCOWL
-(Spell Checker Oriented Word Lists) wordlists available at Kevin's Word Lists
-Page (http://wordlist.sourceforge.net). Lists with the suffixes 10, 20, 35,
-50, 65 and 65 were used. Lists with the suffixes 70, 80 and 95 were excluded.
-Copyright information for SCOWL and the wordlists used in creating it is
-reproduced below.
-
-The affix file is identical to the MySpell English (United States) affix file.
-It is a heavily modified version of the original english.aff file which was
-released as part of Geoff Kuenning's Ispell and as such is covered by his BSD
-license.
-
----
-
-COPYRIGHT, SOURCES, and CREDITS from SCOWL readme file:
-
-The collective work is Copyright 2000 by Kevin Atkinson as well as any
-of the copyrights mentioned below:
-
-  Copyright 2000 by Kevin Atkinson
-
-  Permission to use, copy, modify, distribute and sell these word
-  lists, the associated scripts, the output created from the scripts,
-  and its documentation for any purpose is hereby granted without fee,
-  provided that the above copyright notice appears in all copies and
-  that both that copyright notice and this permission notice appear in
-  supporting documentation. Kevin Atkinson makes no representations
-  about the suitability of this array for any purpose. It is provided
-  "as is" without express or implied warranty.
-
-Alan Beale <biljir@pobox.com> also deserves special credit as he has,
-in addition to providing the 12Dicts package and being a major
-contributor to the ENABLE word list, given me an incredible amount of
-feedback and created a number of special lists (those found in the
-Supplement) in order to help improve the overall quality of SCOWL.
-
-The 10 level includes the 1000 most common English words (according to
-the Moby (TM) Words II [MWords] package), a subset of the 1000 most
-common words on the Internet (again, according to Moby Words II), and
-frequently class 16 from Brian Kelk's "UK English Wordlist
-with Frequency Classification".
-
-The MWords package was explicitly placed in the public domain:
-
-    The Moby lexicon project is complete and has
-    been place into the public domain. Use, sell,
-    rework, excerpt and use in any way on any platform.
-
-    Placing this material on internal or public servers is
-    also encouraged. The compiler is not aware of any
-    export restrictions so freely distribute world-wide.
-
-    You can verify the public domain status by contacting
-
-    Grady Ward
-    3449 Martha Ct.
-    Arcata, CA  95521-4884
-
-    grady@netcom.com
-    grady@northcoast.com
-
-The "UK English Wordlist With Frequency Classification" is also in the
-Public Domain:
-
-  Date: Sat, 08 Jul 2000 20:27:21 +0100
-  From: Brian Kelk <Brian.Kelk@cl.cam.ac.uk>
-
-> I was wondering what the copyright status of your "UK English
-  > Wordlist With Frequency Classification" word list as it seems to
-  > be lacking any copyright notice.
-
-  There were many many sources in total, but any text marked
-  "copyright" was avoided. Locally-written documentation was one
-  source. An earlier version of the list resided in a filespace called
-  PUBLIC on the University mainframe, because it was considered public
-  domain.
-
-  Date: Tue, 11 Jul 2000 19:31:34 +0100
-
-  > So are you saying your word list is also in the public domain?
-
-  That is the intention.
-
-The 20 level includes frequency classes 7-15 from Brian's word list.
-
-The 35 level includes frequency classes 2-6 and words appearing in at
-least 11 of 12 dictionaries as indicated in the 12Dicts package.  All
-words from the 12Dicts package have had likely inflections added via
-my inflection database.
-
-The 12Dicts package and Supplement is in the Public Domain.
-
-The WordNet database, which was used in the creation of the
-Inflections database, is under the following copyright:
-
-  This software and database is being provided to you, the LICENSEE,
-  by Princeton University under the following license.  By obtaining,
-  using and/or copying this software and database, you agree that you
-  have read, understood, and will comply with these terms and
-  conditions.:
-
-  Permission to use, copy, modify and distribute this software and
-  database and its documentation for any purpose and without fee or
-  royalty is hereby granted, provided that you agree to comply with
-  the following copyright notice and statements, including the
-  disclaimer, and that the same appear on ALL copies of the software,
-  database and documentation, including modifications that you make
-  for internal use or for distribution.
-
-  WordNet 1.6 Copyright 1997 by Princeton University.  All rights
-  reserved.
-
-  THIS SOFTWARE AND DATABASE IS PROVIDED "AS IS" AND PRINCETON
-  UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
-  IMPLIED.  BY WAY OF EXAMPLE, BUT NOT LIMITATION, PRINCETON
-  UNIVERSITY MAKES NO REPRESENTATIONS OR WARRANTIES OF MERCHANT-
-  ABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE
-  LICENSED SOFTWARE, DATABASE OR DOCUMENTATION WILL NOT INFRINGE ANY
-  THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
-
-  The name of Princeton University or Princeton may not be used in
-  advertising or publicity pertaining to distribution of the software
-  and/or database.  Title to copyright in this software, database and
-  any associated documentation shall at all times remain with
-  Princeton University and LICENSEE agrees to preserve same.
-
-The 50 level includes Brian's frequency class 1, words words appearing
-in at least 5 of 12 of the dictionaries as indicated in the 12Dicts
-package, and uppercase words in at least 4 of the previous 12
-dictionaries.  A decent number of proper names is also included: The
-top 1000 male, female, and Last names from the 1990 Census report; a
-list of names sent to me by Alan Beale; and a few names that I added
-myself.  Finally a small list of abbreviations not commonly found in
-other word lists is included.
-
-The name files form the Census report is a government document which I
-don't think can be copyrighted.
-
-The name list from Alan Beale is also derived from the linux words
-list, which is derived from the DEC list.  He also added a bunch of
-miscellaneous names to the list, which he released to the Public Domain.
-
-The DEC Word list doesn't have a formal name.  It is labeled as "FILE:
-english.words; VERSION: DEC-SRC-92-04-05" and was put together by Jorge
-Stolfi <stolfi@src.dec.com> DEC Systems Research Center.  The DEC Word
-list has the following copyright statement:
-
-  (NON-)COPYRIGHT STATUS
-
-  To the best of my knowledge, all the files I used to build these
-  wordlists were available for public distribution and use, at least
-  for non-commercial purposes.  I have confirmed this assumption with
-  the authors of the lists, whenever they were known.
-
-  Therefore, it is safe to assume that the wordlists in this package
-  can also be freely copied, distributed, modified, and used for
-  personal, educational, and research purposes.  (Use of these files in
-  commercial products may require written permission from DEC and/or
-  the authors of the original lists.)
-
-  Whenever you distribute any of these wordlists, please distribute
-  also the accompanying README file.  If you distribute a modified
-  copy of one of these wordlists, please include the original README
-  file with a note explaining your modifications.  Your users will
-  surely appreciate that.
-
-  (NO-)WARRANTY DISCLAIMER
-
-  These files, like the original wordlists on which they are based,
-  are still very incomplete, uneven, and inconsitent, and probably
-  contain many errors.  They are offered "as is" without any warranty
-  of correctness or fitness for any particular purpose.  Neither I nor
-  my employer can be held responsible for any losses or damages that
-  may result from their use.
-
-However since this Word List is used in the linux.words package which
-the author claims is free of any copyright I assume it is OK to use
-for most purposes.  If you want to use this in a commercial project
-and this concerns you the information from the DEC word list can
-easily be removed without much sacrifice in quality as only the name
-lists were used.
-
-The file special-jargon.50 uses common.lst and word.lst from the
-"Unofficial Jargon File Word Lists" which is derived from "The Jargon
-File".  All of which is in the Public Domain.  This file also contain
-a few extra UNIX terms which are found in the file "unix-terms" in the
-special/ directory.
-
-The 60 level includes Brian's frequency class 0 and all words
-appearing in at least 2 of the 12 dictionaries as indicated by the
-12Dicts package.  A large number of names are also included: The 4,946
-female names and 3,897 male names from the MWords package and the
-files "computer.names", "misc.names", and "org.names" from the DEC
-package.
-
-The 65 level includes words found in the Ispell "medium" word list.
-The Ispell word lists are under the same copyright of Ispell itself
-which is:
-
-  Copyright 1993, Geoff Kuenning, Granada Hills, CA
-  All rights reserved.
-
-  Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions
-  are met:
-
-  1. Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-  2. Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in the
-     documentation and/or other materials provided with the distribution.
-  3. All modifications to the source code must be clearly marked as
-     such.  Binary redistributions based on modified source code
-     must be clearly marked as modified versions in the documentation
-     and/or other materials provided with the distribution.
-  4. All advertising materials mentioning features or use of this software
-     must display the following acknowledgment:
-     This product includes software developed by Geoff Kuenning and
-     other unpaid contributors.
-  5. The name of Geoff Kuenning may not be used to endorse or promote
-     products derived from this software without specific prior
-     written permission.
-
-  THIS SOFTWARE IS PROVIDED BY GEOFF KUENNING AND CONTRIBUTORS ``AS
-  IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
-  FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL GEOFF
-  KUENNING OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
-  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-  POSSIBILITY OF SUCH DAMAGE.
-
-The 70 level includes the 74,550 common dictionary words and the 21,986 names
-list from the MWords package.  The common dictionary words, like those
-from the 12Dicts package, have had all likely inflections added.
-
-The 80 level includes the ENABLE word list, all the lists in the
-ENABLE supplement package (except for ABLE), the "UK Advanced Cryptics
-Dictionary" (UKACD), the list of signature words in from YAWL package,
-and the 10,196 places list from the MWords package.
-
-The ENABLE package, mainted by M\Cooper <thegrendel@theriver.com>,
-is in the Public Domain:
-
-  The ENABLE master word list, WORD.LST, is herewith formally released
-  into the Public Domain. Anyone is free to use it or distribute it in
-  any manner they see fit. No fee or registration is required for its
-  use nor are "contributions" solicited (if you feel you absolutely
-  must contribute something for your own peace of mind, the authors of
-  the ENABLE list ask that you make a donation on their behalf to your
-  favorite charity). This word list is our gift to the Scrabble
-  community, as an alternate to "official" word lists. Game designers
-  may feel free to incorporate the WORD.LST into their games. Please
-  mention the source and credit us as originators of the list. Note
-  that if you, as a game designer, use the WORD.LST in your product,
-  you may still copyright and protect your product, but you may *not*
-  legally copyright or in any way restrict redistribution of the
-  WORD.LST portion of your product. This *may* under law restrict your
-  rights to restrict your users' rights, but that is only fair.
-
-UKACD, by J Ross Beresford <ross@bryson.demon.co.uk>, is under the
-following copyright:
-
-  Copyright (c) J Ross Beresford 1993-1999. All Rights Reserved.
-
-  The following restriction is placed on the use of this publication:
-  if The UK Advanced Cryptics Dictionary is used in a software package
-  or redistributed in any form, the copyright notice must be
-  prominently displayed and the text of this document must be included
-  verbatim.
-
-  There are no other restrictions: I would like to see the list
-  distributed as widely as possible.
-
-The 95 level includes the 354,984 single words and 256,772 compound
-words from the MWords package, ABLE.LST from the ENABLE Supplement,
-and some additional words found in my part-of-speech database that
-were not found anywhere else.
-
-Accent information was taken from UKACD.
-
-My VARCON package was used to create the American, British, and
-Canadian word list. 
-
-Since the original word lists used used in the
-VARCON package came from the Ispell distribution they are under the
-Ispell copyright.
-
-The variant word lists were created from a list of variants found in
-the 12dicts supplement package as well as a list of variants I created
-myself.
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-en_GB
-
-This dictionary was initially based on a subset of the 
-original English wordlist created by Kevin Atkinson for 
-Pspell and  Aspell and thus is covered by his original 
-LGPL licence. 
-
-It has been extensively updated by David Bartlett, Brian Kelk
-and Andrew Brown:
-- numerous Americanism have been removed
-- numerous American spellings have been corrected
-- missing words have been added
-- many errors have been corrected
-- compound hyphenated words have been added where appropriate
-
-Valuable inputs to this process were received from many other 
-people - far too numerous to name. Serious thanks to you all
-for your greatly appreciated help.
-
-This word list is intended to be a good representation of
-current modern British English and thus it should be a good 
-basis for Commonwealth English in most countries of the world 
-outside North America.
-
-The affix file has been created completely from scratch
-by David Bartlett and Andrew Brown, based on the published 
-rules for MySpell and is also provided under the LGPL.
-
-In creating the affix rules an attempt has been made to 
-reproduce the most general rules for English word
-formation, rather than merely use it as a means to
-compress the size of the dictionary. It is hoped that this
-will facilitate future localisation to other variants of
-English.
-
-Please let David Bartlett <dbartlett@iee.org> know of any 
-errors that you find.
-
-The current release is R 1.14, 15/12/02 or later
-
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-en_NZ
-
-I. Copyright
-II. Copying (Licence)
-----------------------------
-
-I. Copyright
-
-NZ English Dictionary v0.9 beta - Build 06SEP03
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-NB This is an initial version, please check:
-http://lingucomponent.openoffice.org/download_dictionary.html
-or
-http://www.girlza.com/dictionary/download.html
-for a final version, after a little while (no hurry).
-
-This dictionary is based on the en_GB Myspell dictionary 
-which in turn was initially based on a subset of the 
-original English wordlist created by Kevin Atkinson for 
-Pspell and  Aspell and thus is covered by his original 
-LGPL licence. 
-
-
-Introduction
-~~~~~~~~~~~~
-en_NZ.dic has been altered to include New Zealand places,
-including major cities and towns, and major suburbs. It
-also contains NZ words, organisations and expressions.
-
-en_NZ.aff has had a few REPlace strings added, but is
-basically unchanged.
-
-
-Acknowledgements
-~~~~~~~~~~~~~~~~
-Thanks must go to the original creators of the British
-dictionary, David Bartlett, Brian Kelk and Andrew Brown.
-
-I wouldn't have started this without seeing the Australian
-dictionary, thanks Kelvin Eldridge, Jean Hollis Weber and
-David Wilson.
-
-And thank you to all who've contributed to OpenOffice.org.
-
-
-License
-~~~~~~~
-This dictionary is covered by the GNU Lesser General Public
-License, viewable at http://www.gnu.org/copyleft/lesser.html
-
-
-Issues
-~~~~~~
-Many of the proper nouns already in the dictionary do not have
-an affix for 's.
-All my new words start after the z's of the original dictionary.
-
-
-Contact
-~~~~~~~
-Contact Tristan Burtenshaw (hooty@slingshot.co.nz) with any words,
-places or other suggestions for the dictionary.
-
-
-
-II. Copying
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-		       Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-		  GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-			    NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
+Copyright notices for specific languages are in README_??.txt.  Note that the
+files for different regions are merged, both to save space and to make it
+possible to highlight words for another region different from bad words.
diff --git a/runtime/spell/de/de_DE.diff b/runtime/spell/de/de_DE.diff
new file mode 100644
index 0000000..f376dc9
--- /dev/null
+++ b/runtime/spell/de/de_DE.diff
@@ -0,0 +1,14 @@
+*** de_DE.orig.aff	Fri Feb 25 12:50:10 2005
+--- de_DE.aff	Sun Jul  3 19:04:32 2005
+***************
+*** 2,3 ****
+--- 2,10 ----
+  TRY esianrtolcdugmphbyfvkwäüößáéêàâñESIANRTOLCDUGMPHBYFVKWÄÜÖ
++ 
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ MIDWORD	'
++ 
+  #
diff --git a/runtime/spell/de/main.aap b/runtime/spell/de/main.aap
new file mode 100644
index 0000000..dfd2a99
--- /dev/null
+++ b/runtime/spell/de/main.aap
@@ -0,0 +1,82 @@
+# Aap recipe for Dutch Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    VIM = vim
+
+SPELLDIR = ..
+FILES    = de_DE.aff de_DE.dic
+ZIPFILE  = de_DE_comb.zip
+
+all: $(SPELLDIR)/de.latin1.spl $(SPELLDIR)/de.utf-8.spl ../README_de.txt
+
+$(SPELLDIR)/de.latin1.spl : $(VIM) $(FILES)
+        :sys env LANG=de_DE.ISO8859-1
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
+
+$(SPELLDIR)/de.utf-8.spl : $(VIM) $(FILES)
+        :sys env LANG=de_DE.UTF-8
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
+
+../README_de.txt: README_de_DE_comb.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $(OODIR)/%file%} $(ZIPFILE)
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+de_DE.aff de_DE.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch $(ZIPFILE)
+        :sys $(UNZIP) $(ZIPFILE)
+        :delete $(ZIPFILE)
+        :move de_DE_comb.aff de_DE.aff
+        :move de_DE_comb.dic de_DE.dic
+        @if not os.path.exists('de_DE.orig.aff'):
+                :copy de_DE.aff de_DE.orig.aff
+        @if not os.path.exists('de_DE.orig.dic'):
+                :copy de_DE.aff de_DE.orig.dic
+        :sys patch <de_DE.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 de_DE.orig.aff de_DE.aff >de_DE.diff
+        :sys {force} diff -a -C 1 de_DE.orig.dic de_DE.dic >>de_DE.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch $(ZIPFILE)
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../$(ZIPFILE)
+            :move de_DE_comb.aff de_DE.aff
+            :move de_DE_comb.dic de_DE.dic
+            :sys {force} diff ../de_DE.orig.aff de_DE.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy de_DE.aff ../de_DE.new.aff
+            :sys {force} diff ../de_DE.orig.dic de_DE.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy de_DE.dic ../de_DE.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete $(ZIPFILE)
+
+
+# vim: set sts=4 sw=4 :
diff --git a/runtime/spell/en.ascii.spl b/runtime/spell/en.ascii.spl
index b59856c..1b51921 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 5286a4f..b759d2f 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 cf522c7..420d3af 100644
--- a/runtime/spell/en.utf-8.spl
+++ b/runtime/spell/en.utf-8.spl
Binary files differ
diff --git a/src/spell/en_AU.diff b/runtime/spell/en/en_AU.diff
similarity index 99%
rename from src/spell/en_AU.diff
rename to runtime/spell/en/en_AU.diff
index ff3c56e..1b45c8f 100644
--- a/src/spell/en_AU.diff
+++ b/runtime/spell/en/en_AU.diff
@@ -1,5 +1,5 @@
 *** en_AU.orig.aff	Fri Apr 15 13:20:36 2005
---- en_AU.aff	Mon Jun 27 19:42:32 2005
+--- en_AU.aff	Sun Jul  3 17:11:07 2005
 ***************
 *** 7,9 ****
   SET ISO8859-1
@@ -2352,7 +2352,7 @@
 ! SAL ZZ-                  _
 ! SAL Z                    S
 *** en_AU.orig.dic	Fri Apr 15 13:20:36 2005
---- en_AU.dic	Mon Jun 27 09:31:13 2005
+--- en_AU.dic	Sun Jul  3 17:11:07 2005
 ***************
 *** 912,914 ****
   Alaska/M
diff --git a/src/spell/en_CA.diff b/runtime/spell/en/en_CA.diff
similarity index 98%
rename from src/spell/en_CA.diff
rename to runtime/spell/en/en_CA.diff
index 2a555de..0ae8ff8 100644
--- a/src/spell/en_CA.diff
+++ b/runtime/spell/en/en_CA.diff
@@ -1,5 +1,5 @@
 *** en_CA.orig.aff	Fri Apr 15 13:20:36 2005
---- en_CA.aff	Mon Jun 27 19:42:38 2005
+--- en_CA.aff	Sun Jul  3 17:09:40 2005
 ***************
 *** 3,4 ****
 --- 3,13 ----
@@ -169,7 +169,7 @@
 + SAL ZZ-                  _
 + SAL Z                    S
 *** en_CA.orig.dic	Sat Apr 16 14:40:06 2005
---- en_CA.dic	Mon Jun 27 09:31:15 2005
+--- en_CA.dic	Sun Jul  3 17:09:40 2005
 ***************
 *** 46,48 ****
   R/G
diff --git a/src/spell/en_GB.diff b/runtime/spell/en/en_GB.diff
similarity index 84%
rename from src/spell/en_GB.diff
rename to runtime/spell/en/en_GB.diff
index fe1b7dd..ab6e8da 100644
--- a/src/spell/en_GB.diff
+++ b/runtime/spell/en/en_GB.diff
@@ -1,26 +1,22 @@
-*** en_GB.orig.aff	Fri Apr 15 13:20:36 2005
---- en_GB.aff	Mon Jun 27 19:42:42 2005
+*** en_GB.orig.aff	Sun Jul  3 17:53:13 2005
+--- en_GB.aff	Sun Jul  3 17:59:15 2005
 ***************
-*** 7,9 ****
-  SET ISO8859-1
-! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ 
-  REP 24
---- 7,19 ----
-  SET ISO8859-1
-! TRY esiaénrtolcdugmphbyfvkw-'.zqjxSNRTLCGDMPHBEAUYOFIVKWöâôZQJXÅçèîêàïüäñ
-! 
-! FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
-! LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
-! UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
-! 
-! MIDWORD	'
-! 
-! RAR ?
-! BAD !
-! 
-  REP 24
+*** 8,9 ****
+--- 8,19 ----
+  TRY esiaénrtolcdugmfphbyvkw-'.zqjxSNRTLCGDMFPHBEAUYOIVKWóöâôZQJXÅçèîêàïüäñ
++ 
++ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++ 
++ MIDWORD	'
++ 
++ RAR ?
++ BAD !
++ 
+  REP 27
 ***************
-*** 34,53 ****
+*** 37,56 ****
   PFX A Y 2
 ! PFX A 0 re [^e] 
 ! PFX A 0 re- e 
@@ -41,7 +37,7 @@
   PFX E Y 1
 ! PFX E 0 dis . 
   PFX F Y 5
---- 44,63 ----
+--- 47,66 ----
   PFX A Y 2
 ! PFX A 0 re [^e]
 ! PFX A 0 re- e
@@ -63,7 +59,7 @@
 ! PFX E 0 dis .
   PFX F Y 5
 ***************
-*** 57,451 ****
+*** 60,454 ****
   PFX F 0 col l
 ! PFX F 0 con [^abehilmopru]. 
   PFX K Y 1
@@ -459,7 +455,7 @@
   SFX T y iest [^aeiou]y
 ! SFX T 0 er [aeiou]y 
   SFX T 0 est [aeiou]y
---- 67,461 ----
+--- 70,464 ----
   PFX F 0 col l
 ! PFX F 0 con [^abehilmopru].
   PFX K Y 1
@@ -856,7 +852,7 @@
 ! SFX T 0 er [aeiou]y
   SFX T 0 est [aeiou]y
 ***************
-*** 458,1143 ****
+*** 461,1150 ****
   SFX R Y 72
 ! SFX R 0 r e 
 ! SFX R 0 rs e 
@@ -1023,7 +1019,7 @@
 ! SFX p 0 ess ll 
 ! SFX p 0 less [^l]l 
 ! SFX p 0 less [^ly] 
-  SFX Q Y 88
+  SFX Q Y 44
 ! SFX Q 0 tise a 
 ! SFX Q e ise [^l]e 
 ! SFX Q le ilise [^aeiou]le 
@@ -1068,51 +1064,52 @@
 ! SFX Q y ising [^aeiou]y 
 ! SFX Q 0 ising [aeiou]y 
 ! SFX Q 0 ising [^aemsy] 
-! SFX Q 0 tize a 
-! SFX Q e ize [^l]e 
-! SFX Q le ilize [^aeiou]le 
-! SFX Q e ize [aeiou]le 
-! SFX Q um ize um 
-! SFX Q 0 ize [^u]m 
-! SFX Q s ze is 
-! SFX Q 0 ize [^i]s 
-! SFX Q y ize [^aeiou]y 
-! SFX Q 0 ize [aeiou]y 
-! SFX Q 0 ize [^aemsy] 
-! SFX Q 0 tizes a 
-! SFX Q e izes [^l]e 
-! SFX Q le ilizes [^aeiou]le 
-! SFX Q e izes [aeiou]le 
-! SFX Q um izes um 
-! SFX Q 0 izes [^u]m 
-! SFX Q s zes is 
-! SFX Q 0 izes [^i]s 
-! SFX Q y izes [^aeiou]y 
-! SFX Q 0 izes [aeiou]y 
-! SFX Q 0 izes [^aemsy] 
-! SFX Q 0 tized a 
-! SFX Q e ized [^l]e 
-! SFX Q le ilized [^aeiou]le 
-! SFX Q e ized [aeiou]le 
-! SFX Q um ized um 
-! SFX Q 0 ized [^u]m 
-! SFX Q s zed is 
-! SFX Q 0 ized [^i]s 
-! SFX Q y ized [^aeiou]y 
-! SFX Q 0 ized [aeiou]y 
-! SFX Q 0 ized [^aemsy] 
-! SFX Q 0 tizing a 
-! SFX Q e izing [^l]e 
-! SFX Q le ilizing [^aeiou]le 
-! SFX Q e izing [aeiou]le 
-! SFX Q um izing um 
-! SFX Q 0 izing [^u]m 
-! SFX Q s zing is 
-! SFX Q 0 izing [^i]s 
-! SFX Q y izing [^aeiou]y 
-! SFX Q 0 izing [aeiou]y 
-! SFX Q 0 izing [^aemsy] 
-  SFX q Y 44
+  SFX 8 Y 44
+! SFX 8 0 tize a 
+! SFX 8 e ize [^l]e 
+! SFX 8 le ilize [^aeiou]le 
+! SFX 8 e ize [aeiou]le 
+! SFX 8 um ize um 
+! SFX 8 0 ize [^u]m 
+! SFX 8 s ze is 
+! SFX 8 0 ize [^i]s 
+! SFX 8 y ize [^aeiou]y 
+! SFX 8 0 ize [aeiou]y 
+! SFX 8 0 ize [^aemsy] 
+! SFX 8 0 tizes a 
+! SFX 8 e izes [^l]e 
+! SFX 8 le ilizes [^aeiou]le 
+! SFX 8 e izes [aeiou]le 
+! SFX 8 um izes um 
+! SFX 8 0 izes [^u]m 
+! SFX 8 s zes is 
+! SFX 8 0 izes [^i]s 
+! SFX 8 y izes [^aeiou]y 
+! SFX 8 0 izes [aeiou]y 
+! SFX 8 0 izes [^aemsy] 
+! SFX 8 0 tized a 
+! SFX 8 e ized [^l]e 
+! SFX 8 le ilized [^aeiou]le 
+! SFX 8 e ized [aeiou]le 
+! SFX 8 um ized um 
+! SFX 8 0 ized [^u]m 
+! SFX 8 s zed is 
+! SFX 8 0 ized [^i]s 
+! SFX 8 y ized [^aeiou]y 
+! SFX 8 0 ized [aeiou]y 
+! SFX 8 0 ized [^aemsy] 
+! SFX 8 0 tizing a 
+! SFX 8 e izing [^l]e 
+! SFX 8 le ilizing [^aeiou]le 
+! SFX 8 e izing [aeiou]le 
+! SFX 8 um izing um 
+! SFX 8 0 izing [^u]m 
+! SFX 8 s zing is 
+! SFX 8 0 izing [^i]s 
+! SFX 8 y izing [^aeiou]y 
+! SFX 8 0 izing [aeiou]y 
+! SFX 8 0 izing [^aemsy] 
+  SFX q Y 22
 ! SFX q 0 tisation a 
 ! SFX q e isation [^l]e 
 ! SFX q le ilisation [^aeiou]le 
@@ -1135,29 +1132,30 @@
 ! SFX q y isations [^aeiou]y 
 ! SFX q 0 isations [aeiou]y 
 ! SFX q 0 isations [^aemsy] 
-! SFX q 0 tization a 
-! SFX q e ization [^l]e 
-! SFX q le ilization [^aeiou]le 
-! SFX q e ization [aeiou]le 
-! SFX q um ization um 
-! SFX q 0 ization [^u]m 
-! SFX q s zation is 
-! SFX q 0 ization [^i]s 
-! SFX q y ization [^aeiou]y 
-! SFX q 0 ization [aeiou]y 
-! SFX q 0 ization [^aemsy] 
-! SFX q 0 tizations a 
-! SFX q e izations [^l]e 
-! SFX q le ilizations [^aeiou]le 
-! SFX q e izations [aeiou]le 
-! SFX q um izations um 
-! SFX q 0 izations [^u]m 
-! SFX q s zations is 
-! SFX q 0 izations [^i]s 
-! SFX q y izations [^aeiou]y 
-! SFX q 0 izations [aeiou]y 
-! SFX q 0 izations [^aemsy] 
-  SFX s Y 66
+  SFX - Y 22
+! SFX - 0 tization a 
+! SFX - e ization [^l]e 
+! SFX - le ilization [^aeiou]le 
+! SFX - e ization [aeiou]le 
+! SFX - um ization um 
+! SFX - 0 ization [^u]m 
+! SFX - s zation is 
+! SFX - 0 ization [^i]s 
+! SFX - y ization [^aeiou]y 
+! SFX - 0 ization [aeiou]y 
+! SFX - 0 ization [^aemsy] 
+! SFX - 0 tizations a 
+! SFX - e izations [^l]e 
+! SFX - le ilizations [^aeiou]le 
+! SFX - e izations [aeiou]le 
+! SFX - um izations um 
+! SFX - 0 izations [^u]m 
+! SFX - s zations is 
+! SFX - 0 izations [^i]s 
+! SFX - y izations [^aeiou]y 
+! SFX - 0 izations [aeiou]y 
+! SFX - 0 izations [^aemsy] 
+  SFX s Y 33
 ! SFX s 0 tiser a 
 ! SFX s e iser [^l]e 
 ! SFX s le iliser [^aeiou]le 
@@ -1191,40 +1189,41 @@
 ! SFX s y iser's [^aeiou]y 
 ! SFX s 0 iser's [aeiou]y 
 ! SFX s 0 iser's [^aemsy] 
-! SFX s 0 tizer a 
-! SFX s e izer [^l]e 
-! SFX s le ilizer [^aeiou]le 
-! SFX s e izer [aeiou]le 
-! SFX s um izer um 
-! SFX s 0 izer [^u]m 
-! SFX s s zer is 
-! SFX s 0 izer [^i]s 
-! SFX s y izer [^aeiou]y 
-! SFX s 0 izer [aeiou]y 
-! SFX s 0 izer [^aemsy] 
-! SFX s 0 tizers a 
-! SFX s e izers [^l]e 
-! SFX s le ilizers [^aeiou]le 
-! SFX s e izers [aeiou]le 
-! SFX s um izers um 
-! SFX s 0 izers [^u]m 
-! SFX s s zers is 
-! SFX s 0 izers [^i]s 
-! SFX s y izers [^aeiou]y 
-! SFX s 0 izers [aeiou]y 
-! SFX s 0 izers [^aemsy] 
-! SFX s 0 tizer's a 
-! SFX s e izer's [^l]e 
-! SFX s le ilizer's [^aeiou]le 
-! SFX s e izer's [aeiou]le 
-! SFX s um izer's um 
-! SFX s 0 izer's [^u]m 
-! SFX s s zer's is 
-! SFX s 0 izer's [^i]s 
-! SFX s y izer's [^aeiou]y 
-! SFX s 0 izer's [aeiou]y 
-! SFX s 0 izer's [^aemsy] 
-  SFX t Y 44
+  SFX 9 Y 33
+! SFX 9 0 tizer a 
+! SFX 9 e izer [^l]e 
+! SFX 9 le ilizer [^aeiou]le 
+! SFX 9 e izer [aeiou]le 
+! SFX 9 um izer um 
+! SFX 9 0 izer [^u]m 
+! SFX 9 s zer is 
+! SFX 9 0 izer [^i]s 
+! SFX 9 y izer [^aeiou]y 
+! SFX 9 0 izer [aeiou]y 
+! SFX 9 0 izer [^aemsy] 
+! SFX 9 0 tizers a 
+! SFX 9 e izers [^l]e 
+! SFX 9 le ilizers [^aeiou]le 
+! SFX 9 e izers [aeiou]le 
+! SFX 9 um izers um 
+! SFX 9 0 izers [^u]m 
+! SFX 9 s zers is 
+! SFX 9 0 izers [^i]s 
+! SFX 9 y izers [^aeiou]y 
+! SFX 9 0 izers [aeiou]y 
+! SFX 9 0 izers [^aemsy] 
+! SFX 9 0 tizer's a 
+! SFX 9 e izer's [^l]e 
+! SFX 9 le ilizer's [^aeiou]le 
+! SFX 9 e izer's [aeiou]le 
+! SFX 9 um izer's um 
+! SFX 9 0 izer's [^u]m 
+! SFX 9 s zer's is 
+! SFX 9 0 izer's [^i]s 
+! SFX 9 y izer's [^aeiou]y 
+! SFX 9 0 izer's [aeiou]y 
+! SFX 9 0 izer's [^aemsy] 
+  SFX t Y 22
 ! SFX t 0 tisable a 
 ! SFX t e isable [^l]e 
 ! SFX t le ilisable [^aeiou]le 
@@ -1236,17 +1235,6 @@
 ! SFX t y isable [^aeiou]y 
 ! SFX t 0 isable [aeiou]y 
 ! SFX t 0 isable [^aemsy] 
-! SFX t 0 tizable a 
-! SFX t e izable [^l]e 
-! SFX t le ilizable [^aeiou]le 
-! SFX t e izable [aeiou]le 
-! SFX t um izable um 
-! SFX t 0 izable [^u]m 
-! SFX t s zable is 
-! SFX t 0 izable [^i]s 
-! SFX t y izable [^aeiou]y 
-! SFX t 0 izable [aeiou]y 
-! SFX t 0 izable [^aemsy] 
 ! SFX t 0 tisability a 
 ! SFX t e isability [^l]e 
 ! SFX t le ilisability [^aeiou]le 
@@ -1258,17 +1246,29 @@
 ! SFX t y isability [^aeiou]y 
 ! SFX t 0 isability [aeiou]y 
 ! SFX t 0 isability [^aemsy] 
-! SFX t 0 tizability a 
-! SFX t e izability [^l]e 
-! SFX t le ilizability [^aeiou]le 
-! SFX t e izability [aeiou]le 
-! SFX t um izability um 
-! SFX t 0 izability [^u]m 
-! SFX t s zability is 
-! SFX t 0 izability [^i]s 
-! SFX t y izability [^aeiou]y 
-! SFX t 0 izability [aeiou]y 
-! SFX t 0 izability [^aemsy] 
+  SFX + Y 22
+! SFX + 0 tizable a 
+! SFX + e izable [^l]e 
+! SFX + le ilizable [^aeiou]le 
+! SFX + e izable [aeiou]le 
+! SFX + um izable um 
+! SFX + 0 izable [^u]m 
+! SFX + s zable is 
+! SFX + 0 izable [^i]s 
+! SFX + y izable [^aeiou]y 
+! SFX + 0 izable [aeiou]y 
+! SFX + 0 izable [^aemsy] 
+! SFX + 0 tizability a 
+! SFX + e izability [^l]e 
+! SFX + le ilizability [^aeiou]le 
+! SFX + e izability [aeiou]le 
+! SFX + um izability um 
+! SFX + 0 izability [^u]m 
+! SFX + s zability is 
+! SFX + 0 izability [^i]s 
+! SFX + y izability [^aeiou]y 
+! SFX + 0 izability [aeiou]y 
+! SFX + 0 izability [^aemsy] 
   SFX M Y 1
 ! SFX M 0 's . 
   SFX B Y 48
@@ -1467,7 +1467,7 @@
 ! SFX O 0 al [^ipux]t 
 ! SFX O 0 al [^aebcrtxmy] 
   SFX o Y 12
-! SFZ o 0 lly a 
+! SFX o 0 lly a 
 ! SFX o e ally [^bcgv]e 
 ! SFX o e ially [bcgv]e 
 ! SFX o 0 ially [bcrx] 
@@ -1543,7 +1543,7 @@
 ! SFX 3 0 ist's [aeioubp]y 
 ! SFX 3 o ist's o 
 ! SFX 3 0 ist's [^eoy] 
---- 468,1274 ----
+--- 471,1281 ----
   SFX R Y 72
 ! SFX R 0 r e
 ! SFX R 0 rs e
@@ -1710,7 +1710,7 @@
 ! SFX p 0 ess ll
 ! SFX p 0 less [^l]l
 ! SFX p 0 less [^ly]
-  SFX Q Y 88
+  SFX Q Y 44
 ! SFX Q 0 tise a
 ! SFX Q e ise [^l]e
 ! SFX Q le ilise [^aeiou]le
@@ -1755,51 +1755,52 @@
 ! SFX Q y ising [^aeiou]y
 ! SFX Q 0 ising [aeiou]y
 ! SFX Q 0 ising [^aemsy]
-! SFX Q 0 tize a
-! SFX Q e ize [^l]e
-! SFX Q le ilize [^aeiou]le
-! SFX Q e ize [aeiou]le
-! SFX Q um ize um
-! SFX Q 0 ize [^u]m
-! SFX Q s ze is
-! SFX Q 0 ize [^i]s
-! SFX Q y ize [^aeiou]y
-! SFX Q 0 ize [aeiou]y
-! SFX Q 0 ize [^aemsy]
-! SFX Q 0 tizes a
-! SFX Q e izes [^l]e
-! SFX Q le ilizes [^aeiou]le
-! SFX Q e izes [aeiou]le
-! SFX Q um izes um
-! SFX Q 0 izes [^u]m
-! SFX Q s zes is
-! SFX Q 0 izes [^i]s
-! SFX Q y izes [^aeiou]y
-! SFX Q 0 izes [aeiou]y
-! SFX Q 0 izes [^aemsy]
-! SFX Q 0 tized a
-! SFX Q e ized [^l]e
-! SFX Q le ilized [^aeiou]le
-! SFX Q e ized [aeiou]le
-! SFX Q um ized um
-! SFX Q 0 ized [^u]m
-! SFX Q s zed is
-! SFX Q 0 ized [^i]s
-! SFX Q y ized [^aeiou]y
-! SFX Q 0 ized [aeiou]y
-! SFX Q 0 ized [^aemsy]
-! SFX Q 0 tizing a
-! SFX Q e izing [^l]e
-! SFX Q le ilizing [^aeiou]le
-! SFX Q e izing [aeiou]le
-! SFX Q um izing um
-! SFX Q 0 izing [^u]m
-! SFX Q s zing is
-! SFX Q 0 izing [^i]s
-! SFX Q y izing [^aeiou]y
-! SFX Q 0 izing [aeiou]y
-! SFX Q 0 izing [^aemsy]
-  SFX q Y 44
+  SFX 8 Y 44
+! SFX 8 0 tize a
+! SFX 8 e ize [^l]e
+! SFX 8 le ilize [^aeiou]le
+! SFX 8 e ize [aeiou]le
+! SFX 8 um ize um
+! SFX 8 0 ize [^u]m
+! SFX 8 s ze is
+! SFX 8 0 ize [^i]s
+! SFX 8 y ize [^aeiou]y
+! SFX 8 0 ize [aeiou]y
+! SFX 8 0 ize [^aemsy]
+! SFX 8 0 tizes a
+! SFX 8 e izes [^l]e
+! SFX 8 le ilizes [^aeiou]le
+! SFX 8 e izes [aeiou]le
+! SFX 8 um izes um
+! SFX 8 0 izes [^u]m
+! SFX 8 s zes is
+! SFX 8 0 izes [^i]s
+! SFX 8 y izes [^aeiou]y
+! SFX 8 0 izes [aeiou]y
+! SFX 8 0 izes [^aemsy]
+! SFX 8 0 tized a
+! SFX 8 e ized [^l]e
+! SFX 8 le ilized [^aeiou]le
+! SFX 8 e ized [aeiou]le
+! SFX 8 um ized um
+! SFX 8 0 ized [^u]m
+! SFX 8 s zed is
+! SFX 8 0 ized [^i]s
+! SFX 8 y ized [^aeiou]y
+! SFX 8 0 ized [aeiou]y
+! SFX 8 0 ized [^aemsy]
+! SFX 8 0 tizing a
+! SFX 8 e izing [^l]e
+! SFX 8 le ilizing [^aeiou]le
+! SFX 8 e izing [aeiou]le
+! SFX 8 um izing um
+! SFX 8 0 izing [^u]m
+! SFX 8 s zing is
+! SFX 8 0 izing [^i]s
+! SFX 8 y izing [^aeiou]y
+! SFX 8 0 izing [aeiou]y
+! SFX 8 0 izing [^aemsy]
+  SFX q Y 22
 ! SFX q 0 tisation a
 ! SFX q e isation [^l]e
 ! SFX q le ilisation [^aeiou]le
@@ -1822,29 +1823,30 @@
 ! SFX q y isations [^aeiou]y
 ! SFX q 0 isations [aeiou]y
 ! SFX q 0 isations [^aemsy]
-! SFX q 0 tization a
-! SFX q e ization [^l]e
-! SFX q le ilization [^aeiou]le
-! SFX q e ization [aeiou]le
-! SFX q um ization um
-! SFX q 0 ization [^u]m
-! SFX q s zation is
-! SFX q 0 ization [^i]s
-! SFX q y ization [^aeiou]y
-! SFX q 0 ization [aeiou]y
-! SFX q 0 ization [^aemsy]
-! SFX q 0 tizations a
-! SFX q e izations [^l]e
-! SFX q le ilizations [^aeiou]le
-! SFX q e izations [aeiou]le
-! SFX q um izations um
-! SFX q 0 izations [^u]m
-! SFX q s zations is
-! SFX q 0 izations [^i]s
-! SFX q y izations [^aeiou]y
-! SFX q 0 izations [aeiou]y
-! SFX q 0 izations [^aemsy]
-  SFX s Y 66
+  SFX - Y 22
+! SFX - 0 tization a
+! SFX - e ization [^l]e
+! SFX - le ilization [^aeiou]le
+! SFX - e ization [aeiou]le
+! SFX - um ization um
+! SFX - 0 ization [^u]m
+! SFX - s zation is
+! SFX - 0 ization [^i]s
+! SFX - y ization [^aeiou]y
+! SFX - 0 ization [aeiou]y
+! SFX - 0 ization [^aemsy]
+! SFX - 0 tizations a
+! SFX - e izations [^l]e
+! SFX - le ilizations [^aeiou]le
+! SFX - e izations [aeiou]le
+! SFX - um izations um
+! SFX - 0 izations [^u]m
+! SFX - s zations is
+! SFX - 0 izations [^i]s
+! SFX - y izations [^aeiou]y
+! SFX - 0 izations [aeiou]y
+! SFX - 0 izations [^aemsy]
+  SFX s Y 33
 ! SFX s 0 tiser a
 ! SFX s e iser [^l]e
 ! SFX s le iliser [^aeiou]le
@@ -1878,40 +1880,41 @@
 ! SFX s y iser's [^aeiou]y
 ! SFX s 0 iser's [aeiou]y
 ! SFX s 0 iser's [^aemsy]
-! SFX s 0 tizer a
-! SFX s e izer [^l]e
-! SFX s le ilizer [^aeiou]le
-! SFX s e izer [aeiou]le
-! SFX s um izer um
-! SFX s 0 izer [^u]m
-! SFX s s zer is
-! SFX s 0 izer [^i]s
-! SFX s y izer [^aeiou]y
-! SFX s 0 izer [aeiou]y
-! SFX s 0 izer [^aemsy]
-! SFX s 0 tizers a
-! SFX s e izers [^l]e
-! SFX s le ilizers [^aeiou]le
-! SFX s e izers [aeiou]le
-! SFX s um izers um
-! SFX s 0 izers [^u]m
-! SFX s s zers is
-! SFX s 0 izers [^i]s
-! SFX s y izers [^aeiou]y
-! SFX s 0 izers [aeiou]y
-! SFX s 0 izers [^aemsy]
-! SFX s 0 tizer's a
-! SFX s e izer's [^l]e
-! SFX s le ilizer's [^aeiou]le
-! SFX s e izer's [aeiou]le
-! SFX s um izer's um
-! SFX s 0 izer's [^u]m
-! SFX s s zer's is
-! SFX s 0 izer's [^i]s
-! SFX s y izer's [^aeiou]y
-! SFX s 0 izer's [aeiou]y
-! SFX s 0 izer's [^aemsy]
-  SFX t Y 44
+  SFX 9 Y 33
+! SFX 9 0 tizer a
+! SFX 9 e izer [^l]e
+! SFX 9 le ilizer [^aeiou]le
+! SFX 9 e izer [aeiou]le
+! SFX 9 um izer um
+! SFX 9 0 izer [^u]m
+! SFX 9 s zer is
+! SFX 9 0 izer [^i]s
+! SFX 9 y izer [^aeiou]y
+! SFX 9 0 izer [aeiou]y
+! SFX 9 0 izer [^aemsy]
+! SFX 9 0 tizers a
+! SFX 9 e izers [^l]e
+! SFX 9 le ilizers [^aeiou]le
+! SFX 9 e izers [aeiou]le
+! SFX 9 um izers um
+! SFX 9 0 izers [^u]m
+! SFX 9 s zers is
+! SFX 9 0 izers [^i]s
+! SFX 9 y izers [^aeiou]y
+! SFX 9 0 izers [aeiou]y
+! SFX 9 0 izers [^aemsy]
+! SFX 9 0 tizer's a
+! SFX 9 e izer's [^l]e
+! SFX 9 le ilizer's [^aeiou]le
+! SFX 9 e izer's [aeiou]le
+! SFX 9 um izer's um
+! SFX 9 0 izer's [^u]m
+! SFX 9 s zer's is
+! SFX 9 0 izer's [^i]s
+! SFX 9 y izer's [^aeiou]y
+! SFX 9 0 izer's [aeiou]y
+! SFX 9 0 izer's [^aemsy]
+  SFX t Y 22
 ! SFX t 0 tisable a
 ! SFX t e isable [^l]e
 ! SFX t le ilisable [^aeiou]le
@@ -1923,17 +1926,6 @@
 ! SFX t y isable [^aeiou]y
 ! SFX t 0 isable [aeiou]y
 ! SFX t 0 isable [^aemsy]
-! SFX t 0 tizable a
-! SFX t e izable [^l]e
-! SFX t le ilizable [^aeiou]le
-! SFX t e izable [aeiou]le
-! SFX t um izable um
-! SFX t 0 izable [^u]m
-! SFX t s zable is
-! SFX t 0 izable [^i]s
-! SFX t y izable [^aeiou]y
-! SFX t 0 izable [aeiou]y
-! SFX t 0 izable [^aemsy]
 ! SFX t 0 tisability a
 ! SFX t e isability [^l]e
 ! SFX t le ilisability [^aeiou]le
@@ -1945,17 +1937,29 @@
 ! SFX t y isability [^aeiou]y
 ! SFX t 0 isability [aeiou]y
 ! SFX t 0 isability [^aemsy]
-! SFX t 0 tizability a
-! SFX t e izability [^l]e
-! SFX t le ilizability [^aeiou]le
-! SFX t e izability [aeiou]le
-! SFX t um izability um
-! SFX t 0 izability [^u]m
-! SFX t s zability is
-! SFX t 0 izability [^i]s
-! SFX t y izability [^aeiou]y
-! SFX t 0 izability [aeiou]y
-! SFX t 0 izability [^aemsy]
+  SFX + Y 22
+! SFX + 0 tizable a
+! SFX + e izable [^l]e
+! SFX + le ilizable [^aeiou]le
+! SFX + e izable [aeiou]le
+! SFX + um izable um
+! SFX + 0 izable [^u]m
+! SFX + s zable is
+! SFX + 0 izable [^i]s
+! SFX + y izable [^aeiou]y
+! SFX + 0 izable [aeiou]y
+! SFX + 0 izable [^aemsy]
+! SFX + 0 tizability a
+! SFX + e izability [^l]e
+! SFX + le ilizability [^aeiou]le
+! SFX + e izability [aeiou]le
+! SFX + um izability um
+! SFX + 0 izability [^u]m
+! SFX + s zability is
+! SFX + 0 izability [^i]s
+! SFX + y izability [^aeiou]y
+! SFX + 0 izability [aeiou]y
+! SFX + 0 izability [^aemsy]
   SFX M Y 1
 ! SFX M 0 's .
   SFX B Y 48
@@ -2351,266 +2355,200 @@
 ! SAL Y(AEIOU)-            Y
 ! SAL ZZ-                  _
 ! SAL Z                    S
-*** en_GB.orig.dic	Sun Apr 17 18:08:50 2005
---- en_GB.dic	Mon Jun 27 09:31:17 2005
+*** en_GB.orig.dic	Sun Jul  3 18:05:07 2005
+--- en_GB.dic	Sun Jul  3 18:19:25 2005
 ***************
-*** 187,189 ****
-  aitch/SM
-- al/FAC
-  al-Jazeera
---- 187,188 ----
-***************
-*** 1795,1796 ****
---- 1794,1796 ----
-  conic/S
-+ conj.
-  conjectural
-***************
-*** 2103,2105 ****
-  czarship
-- d/o
-  d'art
---- 2103,2104 ----
-***************
-*** 2148,2150 ****
-  dazzle/DRkGJS
-- dBm
-  DC
---- 2147,2148 ----
-***************
-*** 4637,4639 ****
-  lass/MS
-- last-minute
-  lasts/e
---- 4635,4636 ----
-***************
-*** 5470,5472 ****
-  Münchhausen/M
-- n/NxnVvu
-  N'Djamena
---- 5467,5468 ----
-***************
-*** 5499,5501 ****
-  natch
-! nation/M
-  nationalises/A
---- 5495,5497 ----
-  natch
-! nation/MS
-  nationalises/A
-***************
-*** 6316,6317 ****
---- 6312,6314 ----
-  pompom/SM
-+ pompon/M
-  ponce/M
-***************
-*** 7048,7050 ****
-  régime/SM
-! s/ok7
-  Saab/M
---- 7045,7047 ----
-  régime/SM
-! singly
-  Saab/M
-***************
-*** 11148,11149 ****
---- 11145,11148 ----
-  dBi
-+ dBm
-+ dBd
-  DCB
-***************
-*** 11591,11593 ****
-  dérailleur/SM
-- e
-  e'en
---- 11590,11591 ----
-***************
-*** 14591,14592 ****
---- 14589,14591 ----
-  native/SP
-+ natively
-  nativity/SM
-***************
-*** 16172,16174 ****
-  RSPCA
-- rte
-  rubati
---- 16171,16172 ----
-***************
-*** 17251,17253 ****
-  séance/SM
-- t/ac
-  T'ang
---- 17249,17250 ----
-***************
-*** 17808,17809 ****
---- 17805,17807 ----
-  unsearchable
-+ searchable
-  unshakable/Y
-***************
-*** 18268,18270 ****
-  xylophone/SM
-- y/K
-  yachters
---- 18266,18267 ----
-***************
-*** 18322,18323 ****
---- 18319,18321 ----
-  émigré/S
-+ nd
-  3GPP
-***************
-*** 19303,19304 ****
---- 19301,19303 ----
-  Brampton/M
-+ Bram/M
-  brand/MRDGSZ
-***************
-*** 21097,21099 ****
-  estimative
-! et
-  etalon
---- 21096,21099 ----
-  estimative
-! et cetera
-! et al.
-  etalon
-***************
-*** 21228,21230 ****
-  Ezra
-- f/37
-  Faber/M
---- 21228,21229 ----
-***************
-*** 22734,22736 ****
-  justification/M
-- k/E
-  Kabul
---- 22733,22734 ----
-***************
-*** 23632,23633 ****
---- 23630,23632 ----
-  Moog
-+ Moolenaar/M
-  moonlight/GRDSM
-***************
-*** 24242,24244 ****
-  oxygenation/M
-- p/FYAI
-  Pablo/M
---- 24241,24242 ----
-***************
-*** 27223,27225 ****
-  Villiers
-! vim/M
-  Vinci/M
---- 27221,27223 ----
-  Villiers
-! Vim/M
-  Vinci/M
-***************
-*** 27568,27570 ****
-  Yvette
-- z/d
-  Zealanders
---- 27566,27567 ----
-***************
-*** 28174,28176 ****
-  Aztec/M
-- b/bp
-  Baal/M
---- 28171,28172 ----
-***************
-*** 28890,28892 ****
-  Cathy
-! cation/MW
-  catnip/SM
---- 28886,28888 ----
-  Cathy
-! cation/MWS
-  catnip/SM
-***************
-*** 30587,30589 ****
-  fissionable/S
-! fist/6GD
-  fit/6TRGMYJPSDj
---- 30583,30585 ----
-  fissionable/S
-! fist/6GDMS
-  fit/6TRGMYJPSDj
-***************
-*** 30846,30848 ****
-  fuzzy/TP
-- g/73
-  Ga/y
---- 30842,30843 ----
-***************
-*** 31409,31411 ****
-  hob/MDGZS
-! hobbit
-  Hobbs
---- 31404,31406 ----
-  hob/MDGZS
-! hobbit/MS
-  Hobbs
-***************
-*** 32110,32112 ****
-  kWh
-! l/F
-  lab/MoS
---- 32105,32107 ----
-  kWh
-! coll
-  lab/MoS
-***************
-*** 32174,32176 ****
-  lasso/GMDS
-- last-ditch
-  Laszlo/M
---- 32169,32170 ----
-***************
-*** 34188,34190 ****
-  pâté/M
-- q
-  Qatar
---- 34182,34183 ----
-***************
-*** 36324,36326 ****
-  uttermost
-- v
-  vacate/nDGNS
---- 36317,36318 ----
-***************
-*** 37916,37918 ****
-  bys
+*** 630,632 ****
+  Byrne/M
 - c/nN
-  Ca/y
---- 37908,37909 ----
+  cab/GMDXVSN
+--- 630,631 ----
 ***************
-*** 40468,40470 ****
-  Gödel/M
+*** 2588,2590 ****
+  KwaZulu
+- l/3
+  lab/oMS
+--- 2587,2588 ----
+***************
+*** 5221,5223 ****
+  Ajax
+- al/AFC
+  Alabamian/M
+--- 5219,5220 ----
+***************
+*** 6256,6258 ****
+  czarist
+- d/to
+  damaged/U
+--- 6253,6254 ----
+***************
+*** 8168,8170 ****
+  Natasha/M
+! nation/M
+  navigable/P
+--- 8164,8166 ----
+  Natasha/M
+! nation/MS
+  navigable/P
+***************
+*** 9959,9961 ****
+  Uzbekistan/M
+- v
+  vacation/M
+--- 9955,9956 ----
+***************
+*** 11546,11548 ****
+  DZ
+- e
+  each
+--- 11541,11542 ----
+***************
+*** 13189,13191 ****
+  mythology/SQM31w
+- n/NnxVvu
+  nacho/S
+--- 13183,13184 ----
+***************
+*** 16038,16040 ****
+  Catholics
+! cation/MW
+  catnap/DMSG
+--- 16031,16033 ----
+  Catholics
+! cation/MWS
+  catnap/DMSG
+***************
+*** 16954,16956 ****
+  eyewash/SM
+- f/F7
+  fabricator/SM
+--- 16947,16948 ----
+***************
+*** 17874,17877 ****
+  lass/MS
+- last-ditch
+- last-minute
+  latchkey/SM
+--- 17866,17867 ----
+***************
+*** 22365,22367 ****
+  futuristic/S
+- g/7
+  gabbiness/S
+--- 22355,22356 ----
+***************
+*** 22692,22694 ****
+  HMS
+! hobbit
+  hobnob/DGS
+--- 22681,22683 ----
+  HMS
+! hobbit/MS
+  hobnob/DGS
+***************
+*** 23909,23911 ****
+  ozone/M
+- p/AYFI
+  p.a.
+--- 23898,23899 ----
+***************
+*** 24558,24560 ****
+  Rt.
+- rte
+  Ru/M
+--- 24546,24547 ----
+***************
+*** 25697,25699 ****
+  xylem/SM
+- y/K
+  Yamaha/M
+--- 25684,25685 ----
+***************
+*** 27778,27780 ****
+  gyrfalcon/MS
 - h/E
-  ha'p'orth
---- 40459,40460 ----
+  habitual/YP
+--- 27764,27765 ----
 ***************
-*** 43275,43276 ****
---- 43265,43267 ----
-  pneumonia/MS
+*** 29532,29534 ****
+  pyrotechny/Ww
+- q
+  QoS
+--- 29517,29518 ----
+***************
+*** 30776,30778 ****
+  villein/SM
+! vim/M
+  vindaloo/S
+--- 30760,30763 ----
+  villein/SM
+! vim/M?
+! Vim/M
+  vindaloo/S
+***************
+*** 30956,30958 ****
+  YWCA
+- z/d
+  Zamia
+--- 30941,30942 ----
+***************
+*** 34732,34734 ****
+  quizzes
+- r/sd
+  rabbet/SMd
+--- 34716,34717 ----
+***************
+*** 37265,37266 ****
+--- 37248,37250 ----
+  dBi
++ dBd
+  dBW
+***************
+*** 37691,37693 ****
+  establishment/A
+- et
+  eternity/SM
+--- 37675,37676 ----
+***************
+*** 39974,39976 ****
+  rustproof/GD
+! s/ko7
+  Sabine/M
+--- 39957,39959 ----
+  rustproof/GD
+! singly
+  Sabine/M
+***************
+*** 41473,41475 ****
+  azalea/MS
+- b/pb
+  Baal/M
+--- 41456,41457 ----
+***************
+*** 43612,43614 ****
+  justnesses
+- k/k
+  kabob's
+--- 43594,43595 ----
+***************
+*** 45690,45692 ****
+  syringe/SMGD
+- t/7k
+  Tabasco/M
+--- 45671,45672 ----
+***************
+*** 46281 ****
+--- 46261,46276 ----
+  Zurich/M
++ conj.
++ pompon
++ natively
++ nd
++ Bram/M
++ et al.
++ et cetera
++ Moolenaar/M
 + pneumonic
-  PO
-***************
-*** 43665,43667 ****
-  qwerty
-- r/d
-  Ra
---- 43656,43657 ----
-***************
-*** 46148 ****
---- 46138,46144 ----
-  à
 + the the/!
 + a a/!
 + a an/!
diff --git a/src/spell/en_NZ.diff b/runtime/spell/en/en_NZ.diff
similarity index 99%
rename from src/spell/en_NZ.diff
rename to runtime/spell/en/en_NZ.diff
index 98c6cab..5c95622 100644
--- a/src/spell/en_NZ.diff
+++ b/runtime/spell/en/en_NZ.diff
@@ -1,5 +1,5 @@
 *** en_NZ.orig.aff	Fri Apr 15 13:20:36 2005
---- en_NZ.aff	Mon Jun 27 19:42:45 2005
+--- en_NZ.aff	Sun Jul  3 17:11:34 2005
 ***************
 *** 7,9 ****
   SET ISO8859-1
@@ -2353,7 +2353,7 @@
 ! SAL ZZ-                  _
 ! SAL Z                    S
 *** en_NZ.orig.dic	Fri Apr 15 13:20:36 2005
---- en_NZ.dic	Mon Jun 27 09:31:19 2005
+--- en_NZ.dic	Sun Jul  3 17:11:34 2005
 ***************
 *** 4,6 ****
   2ZB
diff --git a/src/spell/en_US.diff b/runtime/spell/en/en_US.diff
similarity index 98%
rename from src/spell/en_US.diff
rename to runtime/spell/en/en_US.diff
index b097609..e2321a0 100644
--- a/src/spell/en_US.diff
+++ b/runtime/spell/en/en_US.diff
@@ -1,5 +1,5 @@
 *** en_US.orig.aff	Fri Apr 15 13:20:36 2005
---- en_US.aff	Mon Jun 27 19:42:49 2005
+--- en_US.aff	Sun Jul  3 16:59:28 2005
 ***************
 *** 3,4 ****
 --- 3,13 ----
@@ -176,7 +176,7 @@
 + SAL ZZ-                  _
 + SAL Z                    S
 *** en_US.orig.dic	Fri Apr 15 13:20:36 2005
---- en_US.dic	Mon Jun 27 09:31:21 2005
+--- en_US.dic	Sun Jul  3 16:59:28 2005
 ***************
 *** 5944,5946 ****
   bk
diff --git a/runtime/spell/en/main.aap b/runtime/spell/en/main.aap
new file mode 100644
index 0000000..03aae6d
--- /dev/null
+++ b/runtime/spell/en/main.aap
@@ -0,0 +1,232 @@
+# Aap recipe for English Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    VIM = vim
+
+SPELLDIR = ..
+FILES    = en_US.aff en_US.dic
+	   en_AU.aff en_AU.dic
+           en_CA.aff en_CA.dic
+           en_GB.aff en_GB.dic
+           en_NZ.aff en_NZ.dic
+
+all: $(SPELLDIR)/en.latin1.spl $(SPELLDIR)/en.utf-8.spl \
+        $(SPELLDIR)/en.ascii.spl ../README_en.txt
+
+$(SPELLDIR)/en.latin1.spl : $(VIM) $(FILES)
+        :sys env LANG=en_US.ISO8859-1
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB
+			en_NZ" -c q
+
+$(SPELLDIR)/en.utf-8.spl : $(VIM) $(FILES)
+        :sys env LANG=en_US.UTF-8
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB
+			en_NZ" -c q
+
+$(SPELLDIR)/en.ascii.spl : $(VIM) $(FILES)
+        :sys $(VIM) -e -c "mkspell! -ascii $(SPELLDIR)/en
+                        en_US en_AU en_CA en_GB en_NZ" -c q
+ 
+../README_en.txt: README_en_US.txt README_en_AU.txt
+        :print en_US >!$target
+        :cat README_en_US.txt | :eval re.sub('\r', '', stdin) >>$target
+        :print =================================================== >>$target
+        :print en_AU: >>$target
+        :cat README_en_AU.txt | :eval re.sub('\r', '', stdin) >>$target
+        :print =================================================== >>$target
+        :print en_CA: >>$target
+        :cat README_en_CA.txt | :eval re.sub('\r', '', stdin) >>$target
+        :print =================================================== >>$target
+        :print en_GB: >>$target
+        :cat README_en_GB.txt | :eval re.sub('\r', '', stdin) >>$target
+        :print =================================================== >>$target
+        :print en_NZ: >>$target
+        :cat README_en_NZ.txt | :eval re.sub('\r', '', stdin) >>$target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $(OODIR)/%file%} en_US.zip en_CA.zip en_NZ.zip
+                                en_GB.zip en_AU.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+en_US.aff en_US.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch en_US.zip
+        :sys $(UNZIP) en_US.zip
+        :delete en_US.zip
+        @if not os.path.exists('en_US.orig.aff'):
+                :copy en_US.aff en_US.orig.aff
+        @if not os.path.exists('en_US.orig.dic'):
+                :copy en_US.aff en_US.orig.dic
+        :sys patch <en_US.diff
+
+en_AU.aff en_AU.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch en_AU.zip
+        :sys $(UNZIP) en_AU.zip
+        :delete en_AU.zip
+        @if not os.path.exists('en_AU.orig.aff'):
+                :copy en_AU.aff en_AU.orig.aff
+        @if not os.path.exists('en_AU.orig.dic'):
+                :copy en_AU.aff en_AU.orig.dic
+        :sys patch <en_AU.diff
+
+en_CA.aff en_CA.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch en_CA.zip
+        :sys $(UNZIP) en_CA.zip
+        :delete en_CA.zip
+        @if not os.path.exists('en_CA.orig.aff'):
+                :copy en_CA.aff en_CA.orig.aff
+        @if not os.path.exists('en_CA.orig.dic'):
+                :copy en_CA.aff en_CA.orig.dic
+        :sys patch <en_CA.diff
+
+en_GB.aff en_GB.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch en_GB.zip
+        :sys $(UNZIP) en_GB.zip
+        :delete en_GB.zip
+        :delete dictionary.lst.example
+        @if not os.path.exists('en_GB.orig.aff'):
+                :copy en_GB.aff en_GB.orig.aff
+        @if not os.path.exists('en_GB.orig.dic'):
+                :copy en_GB.aff en_GB.orig.dic
+        :sys patch <en_GB.diff
+
+en_NZ.aff en_NZ.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch en_NZ.zip
+        :sys $(UNZIP) en_NZ.zip
+        :delete en_NZ.zip
+        @if not os.path.exists('en_NZ.orig.aff'):
+                :copy en_NZ.aff en_NZ.orig.aff
+        @if not os.path.exists('en_NZ.orig.dic'):
+                :copy en_NZ.aff en_NZ.orig.dic
+        :sys patch <en_NZ.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 en_US.orig.aff en_US.aff >en_US.diff
+        :sys {force} diff -a -C 1 en_US.orig.dic en_US.dic >>en_US.diff
+        :sys {force} diff -a -C 1 en_AU.orig.aff en_AU.aff >en_AU.diff
+	:sys {force} diff -a -C 1 en_AU.orig.dic en_AU.dic >>en_AU.diff
+	:sys {force} diff -a -C 1 en_CA.orig.aff en_CA.aff >en_CA.diff
+	:sys {force} diff -a -C 1 en_CA.orig.dic en_CA.dic >>en_CA.diff
+	:sys {force} diff -a -C 1 en_GB.orig.aff en_GB.aff >en_GB.diff
+	:sys {force} diff -a -C 1 en_GB.orig.dic en_GB.dic >>en_GB.diff
+	:sys {force} diff -a -C 1 en_NZ.orig.aff en_NZ.aff >en_NZ.diff
+	:sys {force} diff -a -C 1 en_NZ.orig.dic en_NZ.dic >>en_NZ.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check: check-us check-au check-ca check-gb check-nz
+
+check-us:
+        :assertpkg unzip diff
+        :fetch en_US.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../en_US.zip
+            :sys {force} diff ../en_US.orig.aff en_US.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_US.aff ../en_US.new.aff
+            :sys {force} diff ../en_US.orig.dic en_US.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_US.dic ../en_US.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete en_US.zip
+
+check-au:
+        :assertpkg unzip diff
+        :fetch en_AU.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../en_AU.zip
+            :sys {force} diff ../en_AU.orig.aff en_AU.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_AU.aff ../en_AU.new.aff
+            :sys {force} diff ../en_AU.orig.dic en_AU.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_AU.dic ../en_AU.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete en_AU.zip
+
+check-ca:
+        :assertpkg unzip diff
+        :fetch en_CA.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../en_CA.zip
+            :sys {force} diff ../en_CA.orig.aff en_CA.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_CA.aff ../en_CA.new.aff
+            :sys {force} diff ../en_CA.orig.dic en_CA.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_CA.dic ../en_CA.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete en_CA.zip
+
+check-gb:
+        :assertpkg unzip diff
+        :fetch en_GB.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../en_GB.zip
+            :sys {force} diff ../en_GB.orig.aff en_GB.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_GB.aff ../en_GB.new.aff
+            :sys {force} diff ../en_GB.orig.dic en_GB.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_GB.dic ../en_GB.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete en_GB.zip
+
+check-nz:
+        :assertpkg unzip diff
+        :fetch en_NZ.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../en_NZ.zip
+            :sys {force} diff ../en_NZ.orig.aff en_NZ.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_NZ.aff ../en_NZ.new.aff
+            :sys {force} diff ../en_NZ.orig.dic en_NZ.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy en_NZ.dic ../en_NZ.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete en_NZ.zip
+
+# vim: set sts=4 sw=4 :
diff --git a/src/spell/fr_FR.diff b/runtime/spell/fr/fr_FR.diff
similarity index 100%
rename from src/spell/fr_FR.diff
rename to runtime/spell/fr/fr_FR.diff
diff --git a/runtime/spell/fr/main.aap b/runtime/spell/fr/main.aap
new file mode 100644
index 0000000..e7f1427
--- /dev/null
+++ b/runtime/spell/fr/main.aap
@@ -0,0 +1,77 @@
+# Aap recipe for Dutch Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    VIM = vim
+
+SPELLDIR = ..
+FILES    = fr_FR.aff fr_FR.dic
+
+all: $(SPELLDIR)/fr.latin1.spl $(SPELLDIR)/fr.utf-8.spl ../README_fr.txt
+
+$(SPELLDIR)/fr.latin1.spl : $(VIM) $(FILES)
+        :sys env LANG=fr_FR.ISO8859-1
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/fr fr_FR" -c q
+
+$(SPELLDIR)/fr.utf-8.spl : $(VIM) $(FILES)
+        :sys env LANG=fr_FR.UTF-8
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/fr fr_FR" -c q
+
+../README_fr.txt : lisez-moi.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $(OODIR)/%file%} fr_FR.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+fr_FR.aff fr_FR.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch fr_FR.zip
+        :sys $(UNZIP) fr_FR.zip
+        :delete fr_FR.zip
+        @if not os.path.exists('fr_FR.orig.aff'):
+                :copy fr_FR.aff fr_FR.orig.aff
+        @if not os.path.exists('fr_FR.orig.dic'):
+                :copy fr_FR.aff fr_FR.orig.dic
+        :sys patch <fr_FR.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 fr_FR.orig.aff fr_FR.aff >fr_FR.diff
+        :sys {force} diff -a -C 1 fr_FR.orig.dic fr_FR.dic >>fr_FR.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch fr_FR.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../fr_FR.zip
+            :sys {force} diff ../fr_FR.orig.aff fr_FR.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy fr_FR.aff ../fr_FR.new.aff
+            :sys {force} diff ../fr_FR.orig.dic fr_FR.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy fr_FR.dic ../fr_FR.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete fr_FR.zip
+
+
+# vim: set sts=4 sw=4 :
diff --git a/src/spell/he_IL.diff b/runtime/spell/he/he_IL.diff
similarity index 100%
rename from src/spell/he_IL.diff
rename to runtime/spell/he/he_IL.diff
diff --git a/runtime/spell/he/main.aap b/runtime/spell/he/main.aap
new file mode 100644
index 0000000..413c5e2
--- /dev/null
+++ b/runtime/spell/he/main.aap
@@ -0,0 +1,73 @@
+# Aap recipe for Dutch Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    VIM = vim
+
+SPELLDIR = ..
+FILES    = he_IL.aff he_IL.dic
+
+all: $(SPELLDIR)/he.utf-8.spl ../README_he.txt
+
+$(SPELLDIR)/he.utf-8.spl : $(VIM) $(FILES)
+        :sys env LANG=he_IL.UTF-8
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/he he_IL" -c q
+
+../README_he.txt : README_he_IL.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $(OODIR)/%file%} he_IL.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+he_IL.aff he_IL.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch he_IL.zip
+        :sys $(UNZIP) he_IL.zip
+        :delete he_IL.zip
+        @if not os.path.exists('he_IL.orig.aff'):
+                :copy he_IL.aff he_IL.orig.aff
+        @if not os.path.exists('he_IL.orig.dic'):
+                :copy he_IL.aff he_IL.orig.dic
+        :sys patch <he_IL.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 he_IL.orig.aff he_IL.aff >he_IL.diff
+        :sys {force} diff -a -C 1 he_IL.orig.dic he_IL.dic >>he_IL.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch he_IL.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../he_IL.zip
+            :sys {force} diff ../he_IL.orig.aff he_IL.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy he_IL.aff ../he_IL.new.aff
+            :sys {force} diff ../he_IL.orig.dic he_IL.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy he_IL.dic ../he_IL.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete he_IL.zip
+
+
+# vim: set sts=4 sw=4 :
diff --git a/runtime/spell/main.aap b/runtime/spell/main.aap
new file mode 100644
index 0000000..ded1bc0
--- /dev/null
+++ b/runtime/spell/main.aap
@@ -0,0 +1,6 @@
+:child de/main.aap
+:child en/main.aap
+:child fr/main.aap
+:child he/main.aap
+:child nl/main.aap
+:child pl/main.aap
diff --git a/runtime/spell/nl/main.aap b/runtime/spell/nl/main.aap
new file mode 100644
index 0000000..80e5f74
--- /dev/null
+++ b/runtime/spell/nl/main.aap
@@ -0,0 +1,77 @@
+# Aap recipe for Dutch Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    VIM = vim
+
+SPELLDIR = ..
+FILES    = nl_NL.aff nl_NL.dic
+
+all: $(SPELLDIR)/nl.latin1.spl $(SPELLDIR)/nl.utf-8.spl ../README_nl.txt
+
+$(SPELLDIR)/nl.latin1.spl : $(VIM) $(FILES)
+        :sys env LANG=nl_NL.ISO8859-1
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
+
+$(SPELLDIR)/nl.utf-8.spl : $(VIM) $(FILES)
+        :sys env LANG=nl_NL.UTF-8
+		$(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
+
+../README_nl.txt : README_nl_NL.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $(OODIR)/%file%} nl_NL.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+nl_NL.aff nl_NL.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch nl_NL.zip
+        :sys $(UNZIP) nl_NL.zip
+        :delete nl_NL.zip
+        @if not os.path.exists('nl_NL.orig.aff'):
+                :copy nl_NL.aff nl_NL.orig.aff
+        @if not os.path.exists('nl_NL.orig.dic'):
+                :copy nl_NL.aff nl_NL.orig.dic
+        :sys patch <nl_NL.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 nl_NL.orig.aff nl_NL.aff >nl_NL.diff
+        :sys {force} diff -a -C 1 nl_NL.orig.dic nl_NL.dic >>nl_NL.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch nl_NL.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../nl_NL.zip
+            :sys {force} diff ../nl_NL.orig.aff nl_NL.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy nl_NL.aff ../nl_NL.new.aff
+            :sys {force} diff ../nl_NL.orig.dic nl_NL.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy nl_NL.dic ../nl_NL.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete nl_NL.zip
+
+
+# vim: set sts=4 sw=4 :
diff --git a/src/spell/nl_NL.diff b/runtime/spell/nl/nl_NL.diff
similarity index 100%
rename from src/spell/nl_NL.diff
rename to runtime/spell/nl/nl_NL.diff
diff --git a/runtime/spell/pl/main.aap b/runtime/spell/pl/main.aap
new file mode 100644
index 0000000..b28477d
--- /dev/null
+++ b/runtime/spell/pl/main.aap
@@ -0,0 +1,75 @@
+# Aap recipe for Dutch Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    VIM = vim
+
+SPELLDIR = ..
+FILES    = pl_PL.aff pl_PL.dic
+
+all: $(SPELLDIR)/pl.iso-8859-2.spl $(SPELLDIR)/pl.utf-8.spl ../README_pl.txt
+
+$(SPELLDIR)/pl.iso-8859-2.spl : $(VIM) $(FILES)
+        :sys env LANG=pl_PL.ISO8859-2 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
+
+$(SPELLDIR)/pl.utf-8.spl : $(VIM) $(FILES)
+        :sys env LANG=pl_PL.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
+
+../README_pl.txt: README_pl_PL.txt
+        :copy $source $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $(OODIR)/%file%} pl_PL.zip
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+pl_PL.aff pl_PL.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch pl_PL.zip
+        :sys $(UNZIP) pl_PL.zip
+        :delete pl_PL.zip
+        @if not os.path.exists('pl_PL.orig.aff'):
+                :copy pl_PL.aff pl_PL.orig.aff
+        @if not os.path.exists('pl_PL.orig.dic'):
+                :copy pl_PL.aff pl_PL.orig.dic
+        :sys patch <pl_PL.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+
+diff:
+        :assertpkg diff
+        :sys {force} diff -a -C 1 pl_PL.orig.aff pl_PL.aff >pl_PL.diff
+        :sys {force} diff -a -C 1 pl_PL.orig.dic pl_PL.dic >>pl_PL.diff
+
+
+# Check for updated OpenOffice spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch pl_PL.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $(UNZIP) ../pl_PL.zip
+            :sys {force} diff ../pl_PL.orig.aff pl_PL.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy pl_PL.aff ../pl_PL.new.aff
+            :sys {force} diff ../pl_PL.orig.dic pl_PL.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy pl_PL.dic ../pl_PL.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete pl_PL.zip
+
+
+# vim: set sts=4 sw=4 :
diff --git a/src/spell/pl_PL.diff b/runtime/spell/pl/pl_PL.diff
similarity index 100%
rename from src/spell/pl_PL.diff
rename to runtime/spell/pl/pl_PL.diff
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 757aa73..e74019f 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -679,16 +679,16 @@
 		$(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(RUBY_LIB) $(TCL_LIB) \
 		$(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB)
 
-all:	$(VIM) vimrun.exe install.exe uninstal.exe xxd/xxd.exe GvimExt/gvimext.dll
+all:	$(VIM).exe vimrun.exe install.exe uninstal.exe xxd/xxd.exe GvimExt/gvimext.dll
 
-$(VIM): $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) version.c version.h
+$(VIM).exe: $(OUTDIR) $(OBJ) $(GUI_OBJ) $(OLE_OBJ) $(OLE_IDL) $(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) $(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) version.c version.h
 	$(CC) $(CFLAGS)  version.c /Fo$(OUTDIR)/version.obj $(PDB)
-	$(link) $(LINKARGS1) -out:$*.exe $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \
+	$(link) $(LINKARGS1) -out:$* $(OBJ) $(GUI_OBJ) $(OLE_OBJ) \
 		$(MZSCHEME_OBJ) $(PERL_OBJ) $(PYTHON_OBJ) $(RUBY_OBJ) $(TCL_OBJ) $(SNIFF_OBJ) \
 		$(CSCOPE_OBJ) $(NETBEANS_OBJ) $(XPM_OBJ) \
 		$(OUTDIR)\version.obj $(LINKARGS2)
 
-$(VIM).exe: $(VIM)
+$(VIM): $(VIM).exe
 
 $(OUTDIR):
 	if not exist $(OUTDIR)/nul  mkdir $(OUTDIR)
@@ -907,11 +907,11 @@
 $(OUTDIR)/vim.res:	$(OUTDIR) vim.rc version.h tools.bmp tearoff.bmp vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico
 	$(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc
 
-iid_ole.c if_ole.h vim.tlb: if_ole.idl $(INTDIR) $(OUTDIR)
-	midl /nologo /proxy nul /iid iid_ole.c /tlb vim.tlb /header if_ole.h if_ole.idl
+iid_ole.c if_ole.h vim.tlb: if_ole.idl
+	midl /nologo /error none /proxy nul /iid iid_ole.c /tlb vim.tlb /header if_ole.h if_ole.idl
 
 dimm.h dimm_i.c: dimm.idl
-	midl /nologo /proxy nul dimm.idl
+	midl /nologo /error none /proxy nul dimm.idl
 
 $(OUTDIR)/dimm_i.obj: $(OUTDIR) dimm_i.c $(INCL)
 
diff --git a/src/eval.c b/src/eval.c
index af2c73d..c176226 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -375,7 +375,6 @@
 static int list_equal __ARGS((list_T *l1, list_T *l2, int ic));
 static int dict_equal __ARGS((dict_T *d1, dict_T *d2, int ic));
 static int tv_equal __ARGS((typval_T *tv1, typval_T *tv2, int ic));
-static int string_isa_number __ARGS((char_u *s));
 static listitem_T *list_find __ARGS((list_T *l, long n));
 static long list_idx_of_item __ARGS((list_T *l, listitem_T *item));
 static void list_append __ARGS((list_T *l, listitem_T *item));
@@ -5179,7 +5178,8 @@
 
 /*
  * Return TRUE if "tv1" and "tv2" have the same value.
- * Compares the items just like "==" would compare them.
+ * Compares the items just like "==" would compare them, but strings and
+ * numbers are different.
  */
     static int
 tv_equal(tv1, tv2, ic)
@@ -5190,64 +5190,38 @@
     char_u	buf1[NUMBUFLEN], buf2[NUMBUFLEN];
     char_u	*s1, *s2;
 
-    if (tv1->v_type == VAR_LIST || tv2->v_type == VAR_LIST)
+    if (tv1->v_type != tv2->v_type)
+	return FALSE;
+
+    switch (tv1->v_type)
     {
-	/* recursive! */
-	if (tv1->v_type != tv2->v_type
-		   || !list_equal(tv1->vval.v_list, tv2->vval.v_list, ic))
-	    return FALSE;
+	case VAR_LIST:
+	    /* recursive! */
+	    return list_equal(tv1->vval.v_list, tv2->vval.v_list, ic);
+
+	case VAR_DICT:
+	    /* recursive! */
+	    return dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic);
+
+	case VAR_FUNC:
+	    return (tv1->vval.v_string != NULL
+		    && tv2->vval.v_string != NULL
+		    && STRCMP(tv1->vval.v_string, tv2->vval.v_string) == 0);
+
+	case VAR_NUMBER:
+	    return tv1->vval.v_number == tv2->vval.v_number;
+
+	case VAR_STRING:
+	    s1 = get_tv_string_buf(tv1, buf1);
+	    s2 = get_tv_string_buf(tv2, buf2);
+	    return ((ic ? MB_STRICMP(s1, s2) : STRCMP(s1, s2)) == 0);
     }
-    else if (tv1->v_type == VAR_DICT || tv2->v_type == VAR_DICT)
-    {
-	/* recursive! */
-	if (tv1->v_type != tv2->v_type
-		   || !dict_equal(tv1->vval.v_dict, tv2->vval.v_dict, ic))
-	    return FALSE;
-    }
-    else if (tv1->v_type == VAR_FUNC || tv2->v_type == VAR_FUNC)
-    {
-	if (tv1->v_type != tv2->v_type
-		|| tv1->vval.v_string == NULL
-		|| tv2->vval.v_string == NULL
-		|| STRCMP(tv1->vval.v_string, tv2->vval.v_string) != 0)
-	    return FALSE;
-    }
-    else if (tv1->v_type == VAR_NUMBER || tv2->v_type == VAR_NUMBER)
-    {
-	/* "4" is equal to 4.  But don't consider 'a' and zero to be equal.
-	 * Don't consider "4x" to be equal to 4. */
-	if ((tv1->v_type == VAR_STRING
-				    && !string_isa_number(tv1->vval.v_string))
-		|| (tv2->v_type == VAR_STRING
-				   && !string_isa_number(tv2->vval.v_string)))
-	    return FALSE;
-	if (get_tv_number(tv1) != get_tv_number(tv2))
-	    return FALSE;
-    }
-    else
-    {
-	s1 = get_tv_string_buf(tv1, buf1);
-	s2 = get_tv_string_buf(tv2, buf2);
-	if ((ic ? MB_STRICMP(s1, s2) : STRCMP(s1, s2)) != 0)
-	    return FALSE;
-    }
+
+    EMSG2(_(e_intern2), "tv_equal()");
     return TRUE;
 }
 
 /*
- * Return TRUE if "tv" is a number without other non-white characters.
- */
-    static int
-string_isa_number(s)
-    char_u	*s;
-{
-    int		len;
-
-    vim_str2nr(s, NULL, &len, TRUE, TRUE, NULL, NULL);
-    return len > 0 && *skipwhite(s + len) == NUL;
-}
-
-/*
  * Locate item with index "n" in list "l" and return it.
  * A negative index is counted from the end; -1 is the last item.
  * Returns NULL when "n" is out of range.
diff --git a/src/farsi.c b/src/farsi.c
index f74447f..f325b32 100644
--- a/src/farsi.c
+++ b/src/farsi.c
@@ -1939,7 +1939,7 @@
 }
 
 /*
- * Reverse the characters in the seach path and substitude section accordingly
+ * Reverse the characters in the search path and substitute section accordingly
  */
     char_u *
 lrF_sub(ibuf)
@@ -1950,8 +1950,8 @@
 
     p = ibuf;
 
-    /* Find the boundry of the search path */
-    while (((p = vim_strchr(++p, '/')) != NULL) && p[-1] == '\\')
+    /* Find the boundary of the search path */
+    while (++p, ((p = vim_strchr(p, '/')) != NULL) && p[-1] == '\\')
 	;
 
     if (p == NULL)
@@ -1960,7 +1960,7 @@
     /* Reverse the Farsi characters in the search path. */
     lrFswap(ibuf, (int)(p-ibuf));
 
-    /* Now find the boundry of the substitute section */
+    /* Now find the boundary of the substitute section */
     if ((ep = (char_u *)strrchr((char *)++p, '/')) != NULL)
 	cnt = (int)(ep - p);
     else
diff --git a/src/if_ole.cpp b/src/if_ole.cpp
index de6faad..544ea16 100644
--- a/src/if_ole.cpp
+++ b/src/if_ole.cpp
@@ -651,7 +651,7 @@
 }
 
 // Create a key and set its value
-static void SetKeyAndValue(const char *key, const char subkey, const char *value)
+static void SetKeyAndValue(const char *key, const char *subkey, const char *value)
 {
     HKEY hKey;
     char buffer[1024];
diff --git a/src/spell.c b/src/spell.c
index f8b8460..015a710 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -607,7 +607,7 @@
 static int set_spell_chartab __ARGS((char_u *fol, char_u *low, char_u *upp));
 static void write_spell_chartab __ARGS((FILE *fd));
 static int spell_casefold __ARGS((char_u *p, int len, char_u *buf, int buflen));
-static void spell_find_suggest __ARGS((char_u *badptr, suginfo_T *su, int maxcount, int banbadword));
+static void spell_find_suggest __ARGS((char_u *badptr, suginfo_T *su, int maxcount, int banbadword, int need_cap));
 #ifdef FEAT_EVAL
 static void spell_suggest_expr __ARGS((suginfo_T *su, char_u *expr));
 #endif
@@ -5952,6 +5952,10 @@
     suginfo_T	sug;
     suggest_T	*stp;
     int		mouse_used;
+    int		need_cap;
+    regmatch_T	regmatch;
+    int		endcol;
+    char_u	*line_copy = NULL;
 
     /* Find the start of the badly spelled word. */
     if (spell_move_to(FORWARD, TRUE, TRUE) == FAIL
@@ -5983,8 +5987,62 @@
     /* Get the word and its length. */
     line = ml_get_curline();
 
+    /* Figure out if the word should be capitalised. */
+    need_cap = FALSE;
+    if (curbuf->b_cap_prog != NULL)
+    {
+	endcol = 0;
+	if (skipwhite(line) - line == curwin->w_cursor.col)
+	{
+	    /* At start of line, check if previous line is empty or sentence
+	     * ends there. */
+	    if (curwin->w_cursor.lnum == 1)
+		need_cap = TRUE;
+	    else
+	    {
+		line = ml_get(curwin->w_cursor.lnum - 1);
+		if (*skipwhite(line) == NUL)
+		    need_cap = TRUE;
+		else
+		{
+		    /* Append a space in place of the line break. */
+		    line_copy = concat_str(line, (char_u *)" ");
+		    line = line_copy;
+		    endcol = STRLEN(line);
+		}
+	    }
+	}
+	else
+	    endcol = curwin->w_cursor.col;
+
+	if (endcol > 0)
+	{
+	    /* Check if sentence ends before the bad word. */
+	    regmatch.regprog = curbuf->b_cap_prog;
+	    regmatch.rm_ic = FALSE;
+	    p = line + endcol;
+	    for (;;)
+	    {
+		mb_ptr_back(line, p);
+		if (p == line || SPELL_ISWORDP(p))
+		    break;
+		if (vim_regexec(&regmatch, p, 0)
+					 && regmatch.endp[0] == line + endcol)
+		{
+		    need_cap = TRUE;
+		    break;
+		}
+	    }
+	}
+
+	/* get the line again, we may have been using the previous one */
+	line = ml_get_curline();
+	vim_free(line_copy);
+    }
+
     /* Get the list of suggestions */
-    spell_find_suggest(line + curwin->w_cursor.col, &sug, (int)Rows - 2, TRUE);
+    spell_find_suggest(line + curwin->w_cursor.col, &sug, (int)Rows - 2,
+							      TRUE, need_cap);
 
     if (sug.su_ga.ga_len == 0)
 	MSG(_("Sorry, no suggestions"));
@@ -6159,7 +6217,7 @@
     suggest_T	*stp;
     char_u	*wcopy;
 
-    spell_find_suggest(word, &sug, maxcount, FALSE);
+    spell_find_suggest(word, &sug, maxcount, FALSE, FALSE);
 
     /* Make room in "gap". */
     ga_init2(gap, sizeof(char_u *), sug.su_ga.ga_len + 1);
@@ -6192,11 +6250,12 @@
  * This is based on the mechanisms of Aspell, but completely reimplemented.
  */
     static void
-spell_find_suggest(badptr, su, maxcount, banbadword)
+spell_find_suggest(badptr, su, maxcount, banbadword, need_cap)
     char_u	*badptr;
     suginfo_T	*su;
     int		maxcount;
     int		banbadword;	/* don't include badword in suggestions */
+    int		need_cap;	/* word should start with capital */
 {
     int		attr = 0;
     char_u	buf[MAXPATHL];
@@ -6230,6 +6289,8 @@
 						    su->su_fbadword, MAXWLEN);
     /* get caps flags for bad word */
     su->su_badflags = captype(su->su_badptr, su->su_badptr + su->su_badlen);
+    if (need_cap)
+	su->su_badflags |= WF_ONECAP;
 
     /* If the word is not capitalised and spell_check() doesn't consider the
      * word to be bad then it might need to be capitalised.  Add a suggestion
@@ -6237,7 +6298,7 @@
 #ifdef FEAT_MBYTE
     c = mb_ptr2char(su->su_badptr);
 #else
-    c = *p;
+    c = *su->su_badptr;
 #endif
     if (!SPELL_ISUPPER(c) && attr == 0)
     {
@@ -7972,6 +8033,7 @@
 				    char_u	*p;
 				    int		score;
 
+				    flags |= su->su_badflags;
 				    if (round == 1 && (flags & WF_CAPMASK) != 0)
 				    {
 					/* Need to fix case according to
diff --git a/src/spell/Makefile b/src/spell/Makefile
deleted file mode 100644
index 838e603..0000000
--- a/src/spell/Makefile
+++ /dev/null
@@ -1,117 +0,0 @@
-# Makefile for Vim spell files.
-
-SPELLDIR = ../../runtime/spell
-VIM	 = ../vim
-
-all: en pl nl de fr
-	
-en: $(SPELLDIR)/en.latin1.spl \
-	$(SPELLDIR)/en.utf-8.spl \
-	$(SPELLDIR)/en.ascii.spl
-
-pl: $(SPELLDIR)/pl.iso-8859-2.spl \
-	$(SPELLDIR)/pl.utf-8.spl
-
-nl: $(SPELLDIR)/nl.latin1.spl \
-	$(SPELLDIR)/nl.utf-8.spl
-
-de: $(SPELLDIR)/de.latin1.spl \
-	$(SPELLDIR)/de.utf-8.spl
-
-fr: $(SPELLDIR)/fr.latin1.spl \
-	$(SPELLDIR)/fr.utf-8.spl
-
-he: $(SPELLDIR)/he.utf-8.spl
-
-diff:
-	-diff -a -C 1 en_US.orig.aff en_US.aff >en_US.diff
-	-diff -a -C 1 en_US.orig.dic en_US.dic >>en_US.diff
-	-diff -a -C 1 en_AU.orig.aff en_AU.aff >en_AU.diff
-	-diff -a -C 1 en_AU.orig.dic en_AU.dic >>en_AU.diff
-	-diff -a -C 1 en_CA.orig.aff en_CA.aff >en_CA.diff
-	-diff -a -C 1 en_CA.orig.dic en_CA.dic >>en_CA.diff
-	-diff -a -C 1 en_GB.orig.aff en_GB.aff >en_GB.diff
-	-diff -a -C 1 en_GB.orig.dic en_GB.dic >>en_GB.diff
-	-diff -a -C 1 en_NZ.orig.aff en_NZ.aff >en_NZ.diff
-	-diff -a -C 1 en_NZ.orig.dic en_NZ.dic >>en_NZ.diff
-	
-	-diff -a -C 1 nl_NL.orig.aff nl_NL.aff >nl_NL.diff
-	-diff -a -C 1 nl_NL.orig.dic nl_NL.dic >>nl_NL.diff
-	
-	-diff -a -C 1 pl_PL.orig.aff pl_PL.aff >pl_PL.diff
-	-diff -a -C 1 pl_PL.orig.dic pl_PL.dic >>pl_PL.diff
-	
-	-diff -a -C 1 de_DE.orig.aff de_DE.aff >de_DE.diff
-	-diff -a -C 1 de_DE.orig.dic de_DE.dic >>de_DE.diff
-	
-	-diff -a -C 1 fr_FR.orig.aff fr_FR.aff >fr_FR.diff
-	-diff -a -C 1 fr_FR.orig.dic fr_FR.dic >>fr_FR.diff
-	
-	-diff -a -C 1 he_IL.orig.aff he_IL.aff >he_IL.diff
-	-diff -a -C 1 he_IL.orig.dic he_IL.dic >>he_IL.diff
-
-$(SPELLDIR)/en.latin1.spl : $(VIM) \
-			en_US.aff en_US.dic \
-			en_AU.aff en_AU.dic \
-			en_CA.aff en_CA.dic \
-			en_GB.aff en_GB.dic \
-			en_NZ.aff en_NZ.dic
-	env LANG=en_US.ISO8859-1 \
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB \
-			en_NZ" -c q
-
-$(SPELLDIR)/en.utf-8.spl : $(VIM) \
-			en_US.aff en_US.dic \
-			en_AU.aff en_AU.dic \
-			en_CA.aff en_CA.dic \
-			en_GB.aff en_GB.dic \
-			en_NZ.aff en_NZ.dic
-	env LANG=en_US.UTF-8 \
-		$(VIM) -e -c "mkspell! $(SPELLDIR)/en en_US en_AU en_CA en_GB \
-			en_NZ" -c q
-
-$(SPELLDIR)/en.ascii.spl : $(VIM) \
-			en_US.aff en_US.dic \
-			en_AU.aff en_AU.dic \
-			en_CA.aff en_CA.dic \
-			en_GB.aff en_GB.dic \
-			en_NZ.aff en_NZ.dic
-	$(VIM) -e -c "mkspell! -ascii $(SPELLDIR)/en en_US en_AU en_CA en_GB \
-			en_NZ" -c q
-
-$(SPELLDIR)/pl.iso-8859-2.spl : $(VIM) \
-			pl_PL.aff pl_PL.dic
-	env LANG=pl_PL.ISO8859-2 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
-
-$(SPELLDIR)/pl.utf-8.spl : $(VIM) \
-			pl_PL.aff pl_PL.dic
-	env LANG=pl_PL.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/pl pl_PL" -c q
-
-$(SPELLDIR)/nl.latin1.spl : $(VIM) \
-			nl_NL.aff nl_NL.dic
-	env LANG=nl_NL.ISO8859-1 $(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
-
-$(SPELLDIR)/nl.utf-8.spl : $(VIM) \
-			nl_NL.aff nl_NL.dic
-	env LANG=nl_NL.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/nl nl_NL" -c q
-
-$(SPELLDIR)/de.latin1.spl : $(VIM) \
-			de_DE.aff de_DE.dic
-	env LANG=de_DE.ISO8859-1 $(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
-
-$(SPELLDIR)/de.utf-8.spl : $(VIM) \
-			de_DE.aff de_DE.dic
-	env LANG=de_DE.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/de de_DE" -c q
-
-$(SPELLDIR)/fr.latin1.spl : $(VIM) \
-			fr_FR.aff fr_FR.dic
-	env LANG=fr_FR.ISO8859-1 $(VIM) -e -c "mkspell! $(SPELLDIR)/fr fr_FR" -c q
-
-$(SPELLDIR)/fr.utf-8.spl : $(VIM) \
-			fr_FR.aff fr_FR.dic
-	env LANG=fr_FR.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/fr fr_FR" -c q
-
-
-$(SPELLDIR)/he.utf-8.spl : $(VIM) \
-			he_IL.aff he_IL.dic
-	env LANG=he_IL.UTF-8 $(VIM) -e -c "mkspell! $(SPELLDIR)/he he_IL" -c q
diff --git a/src/spell/de_DE.diff b/src/spell/de_DE.diff
deleted file mode 100644
index a7b056a..0000000
--- a/src/spell/de_DE.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-*** de_DE.orig.aff	Fri Jun 17 10:01:18 2005
---- de_DE.aff	Mon Jun 27 19:42:20 2005
-***************
-*** 3,4 ****
---- 3,10 ----
-  
-+ FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
-+ LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
-+ UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
-+ 
-+ MIDWORD	'
-+ 
-  # (c) copyright by Bjoern Jacke <bjoern@j3e.de>
-*** de_DE.orig.dic	Fri Jun 17 10:01:27 2005
---- de_DE.dic	Sat Jun 18 19:57:07 2005
-***************
-*** 76258,76259 ****
-  zynismusfördernd/A
-! zzgl
-\ No newline at end of file
---- 76258,76260 ----
-  zynismusfördernd/A
-! zzgl
-! 
diff --git a/src/version.h b/src/version.h
index 7728e9a..e168db2 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 2)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 2, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 3)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 3, compiled "