updated for version 7.0138
diff --git a/runtime/spell/bg/main.aap b/runtime/spell/bg/main.aap
index 5d984be..2ccea86 100644
--- a/runtime/spell/bg/main.aap
+++ b/runtime/spell/bg/main.aap
@@ -19,7 +19,6 @@
 
 ../README_bg.txt: README_bg_BG.txt
         :copy $source $target
-        :sys $VIM $target -e -c "set ff=unix" -c wq
 
 #
 # Fetching the files from OpenOffice.org.
@@ -35,8 +34,9 @@
         :fetch bg_BG.zip
         :sys $UNZIP bg_BG.zip
         :delete bg_BG.zip
-        :sys $VIM bg_BG.aff -c "set ff=unix" -c "update" -c q
-        :sys $VIM bg_BG.dic -c "set ff=unix" -c "update" -c q
+        :sys $VIM bg_BG.aff -e -c "set ff=unix" -c update -c q
+        :sys $VIM bg_BG.dic -e -c "set ff=unix" -c update -c q
+        :sys $VIM README_bg_BG.txt -e -c "set ff=unix" -c update -c q
         @if not os.path.exists('bg_BG.orig.aff'):
             :copy bg_BG.aff bg_BG.orig.aff
         @if not os.path.exists('bg_BG.orig.dic'):
diff --git a/runtime/spell/main.aap b/runtime/spell/main.aap
index 87eddfd..ffb16b8 100644
--- a/runtime/spell/main.aap
+++ b/runtime/spell/main.aap
@@ -4,7 +4,8 @@
 # aap        generate all the .spl files
 # aap diff   create all the diff files
 
-LANG = af am bg ca cs da de el en eo es fr fo gl he hr it nl ny pl sk th yi hu
+LANG = af am bg ca cs da de el en eo es fr fo gl he hr it nl ny pl ru sk
+       th yi hu
 
 # "hu" is at the end, because it takes very long.
 #
diff --git a/runtime/spell/ru/main.aap b/runtime/spell/ru/main.aap
new file mode 100644
index 0000000..85aeca9
--- /dev/null
+++ b/runtime/spell/ru/main.aap
@@ -0,0 +1,104 @@
+# Aap recipe for Russian Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+REGIONS = RU IE YO
+SPELLDIR = ..
+FILES    = ru_$*(REGIONS).aff ru_$*(REGIONS).dic
+
+all: $SPELLDIR/ru.koi8-r.spl $SPELLDIR/ru.utf-8.spl \
+        $SPELLDIR/ru.cp1251.spl ../README_ru.txt
+
+$SPELLDIR/ru.koi8-r.spl : $FILES
+        :sys env LANG=ru_RU.KOI8-R $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_IE ru_YO" -c q
+
+$SPELLDIR/ru.utf-8.spl : $FILES
+        :sys env LANG=ru_RU.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_IE ru_YO" -c q
+
+$SPELLDIR/ru.cp1251.spl : $FILES
+        :sys env LANG=ru_RU.CP1251 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ru ru_RU ru_IE ru_YO" -c q
+
+../README_ru.txt: README_ru_$*(REGIONS).txt
+        :print ru_RU >! $target
+        :cat README_ru_RU.txt >> $target
+        :print =================================================== >>$target
+        :print ru_IE >> $target
+        :cat README_ru_IE.txt >> $target
+        :print =================================================== >>$target
+        :print ru_YO >> $target
+        :cat README_ru_YO.txt >> $target
+
+#
+# Fetching the files from OpenOffice.org.
+#
+OODIR = http://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries
+:attr {fetch = $OODIR/%file%} ru_RU.zip ru_RU_ye.zip ru_RU_yo.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.
+# This is a bit tricky, since the file name includes the date.
+ru_RU.aff ru_RU.dic: {buildcheck=}
+        :assertpkg unzip
+        :fetch ru_RU.zip
+        :sys unzip ru_RU.zip
+        :delete ru_RU.zip
+        @if not os.path.exists('ru_RU.orig.aff'):
+            :copy ru_RU.aff ru_RU.orig.aff
+        @if not os.path.exists('ru_RU.orig.dic'):
+            :copy ru_RU.dic ru_RU.orig.dic
+        @if os.path.exists('ru_RU.diff'):
+            :sys patch <ru_RU.diff
+
+ru_IE.aff ru_IE.dic: {buildcheck=}
+        :assertpkg unzip
+        :fetch ru_RU_ye.zip
+        :sys unzip ru_RU_ye.zip
+        :delete ru_RU_ye.zip
+        :move ru_RU_ie.aff ru_IE.aff
+        :move ru_RU_ie.dic ru_IE.dic
+        :move README_ru_RU_ie.txt README_ru_IE.txt
+        @if not os.path.exists('ru_IE.orig.aff'):
+            :copy ru_IE.aff ru_IE.orig.aff
+        @if not os.path.exists('ru_IE.orig.dic'):
+            :copy ru_IE.dic ru_IE.orig.dic
+        @if os.path.exists('ru_IE.diff'):
+            :sys patch <ru_IE.diff
+
+ru_YO.aff ru_YO.dic: {buildcheck=}
+        :assertpkg unzip
+        :fetch ru_RU_yo.zip
+        :sys unzip ru_RU_yo.zip
+        :delete ru_RU_yo.zip
+        :move ru_RU_yo.aff ru_YO.aff
+        :move ru_RU_yo.dic ru_YO.dic
+        :move README_ru_RU_yo.txt README_ru_YO.txt
+        @if not os.path.exists('ru_YO.orig.aff'):
+            :copy ru_YO.aff ru_YO.orig.aff
+        @if not os.path.exists('ru_YO.orig.dic'):
+            :copy ru_YO.dic ru_YO.orig.dic
+        @if os.path.exists('ru_YO.diff'):
+            :sys patch <ru_YO.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 ru_RU.orig.aff ru_RU.aff >ru_RU.diff
+        :sys {force} diff -a -C 1 ru_RU.orig.dic ru_RU.dic >>ru_RU.diff
+        :sys {force} diff -a -C 1 ru_IE.orig.aff ru_IE.aff >ru_IE.diff
+        :sys {force} diff -a -C 1 ru_IE.orig.dic ru_IE.dic >>ru_IE.diff
+        :sys {force} diff -a -C 1 ru_YO.orig.aff ru_YO.aff >ru_YO.diff
+        :sys {force} diff -a -C 1 ru_YO.orig.dic ru_YO.dic >>ru_YO.diff
+
+
+# Check for updated spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :print Doesn't work yet.
diff --git a/runtime/spell/ru/ru_RU.diff b/runtime/spell/ru/ru_RU.diff
new file mode 100644
index 0000000..18560c3
--- /dev/null
+++ b/runtime/spell/ru/ru_RU.diff
@@ -0,0 +1,32 @@
+*** ru_RU.orig.dic	Sat Aug 27 22:54:55 2005
+--- ru_RU.dic	Sun Aug 28 11:46:34 2005
+***************
+*** 8767,8769 ****
+  ÂÌÅËÌÏÓÔØ/F
+- ÂÌÅËÌÙÊ/A
+  ÂÌÅËÌÙÊ/AZ
+--- 8767,8768 ----
+***************
+*** 98086,98088 ****
+  ÒÁÚÒÑÖÅÎÎÙÊ/AES
+- ÒÁÚÒÑÖÅÎÎÙÊ/AS
+  ÒÁÚÕÂÅÄÉ×ÛÉÊ/A
+--- 98085,98086 ----
+***************
+*** 115007,115009 ****
+  ÔÏÌËÉ/B
+- ÔÏÌËÉ/O
+  ÔÏÌËÌÁ/L
+--- 115005,115006 ----
+***************
+*** 119209,119211 ****
+  ÕÎÉÖÅÎÎÙÊ/ASX
+- ÕÎÉÖÅÎÎÙÊ/AX
+  ÕÎÉÚÁ×ÛÉÊ/A
+--- 119206,119207 ----
+***************
+*** 120603,120605 ****
+  ÕÔÏÎÞÅÎÎÙÊ/ASX
+- ÕÔÏÎÞÅÎÎÙÊ/AX
+  ÕÔÏÐ/L
+--- 120599,120600 ----
diff --git a/runtime/spell/ru/ru_YO.diff b/runtime/spell/ru/ru_YO.diff
new file mode 100644
index 0000000..2cf8177
--- /dev/null
+++ b/runtime/spell/ru/ru_YO.diff
@@ -0,0 +1,14 @@
+*** ru_YO.orig.dic	Sat Aug 27 22:54:55 2005
+--- ru_YO.dic	Sun Aug 28 11:46:58 2005
+***************
+*** 86471,86473 ****
+  ÐÏÞÔ£ÎÎÙÊ/AS
+- ÐÏÞÔÉ
+  ÐÏÞÔÉ/B
+--- 86471,86472 ----
+***************
+*** 115246,115248 ****
+  ÔÏÌËÉ/B
+- ÔÏÌËÉ/O
+  ÔÏÌËÌÁ/L
+--- 115245,115246 ----