diff --git a/runtime/spell/cy/cy_GB.diff b/runtime/spell/cy/cy_GB.diff
new file mode 100644
index 0000000..511e718
--- /dev/null
+++ b/runtime/spell/cy/cy_GB.diff
@@ -0,0 +1,9 @@
+*** cy_GB.orig.aff	Wed Aug 31 21:42:03 2005
+--- cy_GB.aff	Wed Aug 31 21:43:10 2005
+***************
+*** 81,82 ****
+--- 81,84 ----
+  
++ MIDWORD '-
++ 
+  PFX M Y 18
diff --git a/runtime/spell/cy/main.aap b/runtime/spell/cy/main.aap
new file mode 100644
index 0000000..ce6cb84
--- /dev/null
+++ b/runtime/spell/cy/main.aap
@@ -0,0 +1,82 @@
+# Aap recipe for Welsh Vim spell files.
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+    VIM = ../../../src/vim
+@else:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = cy_GB.aff cy_GB.dic
+
+all: $SPELLDIR/cy.iso-8859-14.spl $SPELLDIR/cy.utf-8.spl \
+         ../README_cy.txt
+
+$SPELLDIR/cy.iso-8859-14.spl : $FILES
+        :sys $VIM -u NONE -e -c "set enc=iso-8859-14" 
+                -c "mkspell! $SPELLDIR/cy cy_GB" -c q
+
+$SPELLDIR/cy.utf-8.spl : $FILES
+        :sys $VIM -u NONE -e -c "set enc=utf-8"
+                -c "mkspell! $SPELLDIR/cy cy_GB" -c q
+
+../README_cy.txt : README_cy_GB.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%} cy_GB.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.
+cy_GB.aff cy_GB.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch cy_GB.zip
+        :sys $UNZIP cy_GB.zip
+        :delete cy_GB.zip
+        :sys $VIM cy_GB.aff -e -c "set ff=unix" -c update -c q
+        :sys $VIM cy_GB.dic -e -c "set ff=unix" -c update -c q
+        :sys $VIM README_cy_GB.txt -e -c "set ff=unix" -c update -c q
+        @if not os.path.exists('cy_GB.orig.aff'):
+            :copy cy_GB.aff cy_GB.orig.aff
+        @if not os.path.exists('cy_GB.orig.dic'):
+            :copy cy_GB.dic cy_GB.orig.dic
+        @if os.path.exists('cy_GB.diff'):
+            :sys patch <cy_GB.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 cy_GB.orig.aff cy_GB.aff >cy_GB.diff
+        :sys {force} diff -a -C 1 cy_GB.orig.dic cy_GB.dic >>cy_GB.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 cy_GB.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../cy_GB.zip
+            :sys {force} diff ../cy_GB.orig.aff cy_GB.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy cy_GB.aff ../cy_GB.new.aff
+            :sys {force} diff ../cy_GB.orig.dic cy_GB.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy cy_GB.dic ../cy_GB.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete cy_GB.zip
+
+
+# vim: set sts=4 sw=4 :
