diff --git a/runtime/spell/ku/ku_TR.diff b/runtime/spell/ku/ku_TR.diff
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/runtime/spell/ku/ku_TR.diff
diff --git a/runtime/spell/ku/main.aap b/runtime/spell/ku/main.aap
new file mode 100644
index 0000000..200fb2f
--- /dev/null
+++ b/runtime/spell/ku/main.aap
@@ -0,0 +1,82 @@
+# Aap recipe for Kurdish 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    = ku_TR.aff ku_TR.dic
+
+# I don't have a Kurdish locale, us the Turkish one.
+all: $SPELLDIR/ku.iso-8859-9.spl $SPELLDIR/ku.utf-8.spl \
+        ../README_ku.txt
+
+$SPELLDIR/ku.iso-8859-9.spl : $FILES
+        :sys env LANG=tr_TR.ISO8859-9 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ku ku_TR" -c q
+
+$SPELLDIR/ku.utf-8.spl : $FILES
+        :sys env LANG=tr_TR.UTF-8 $VIM -u NONE -e -c "mkspell! $SPELLDIR/ku ku_TR" -c q
+
+../README_ku.txt: README_ku_TR.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%} ku_TR.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.
+ku_TR.aff ku_TR.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch ku_TR.zip
+        :sys $UNZIP ku_TR.zip
+        :delete ku_TR.zip
+        :sys $VIM ku_TR.aff -e -c "set ff=unix" -c update -c q
+        :sys $VIM ku_TR.dic -e -c "set ff=unix" -c update -c q
+        :sys $VIM README_ku_TR.txt -e -c "set ff=unix" -c update -c q
+        @if not os.path.exists('ku_TR.orig.aff'):
+            :copy ku_TR.aff ku_TR.orig.aff
+        @if not os.path.exists('ku_TR.orig.dic'):
+            :copy ku_TR.dic ku_TR.orig.dic
+        @if os.path.exists('ku_TR.diff'):
+            :sys patch <ku_TR.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 ku_TR.orig.aff ku_TR.aff >ku_TR.diff
+        :sys {force} diff -a -C 1 ku_TR.orig.dic ku_TR.dic >>ku_TR.diff
+
+
+# Check for updated spell files.  When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+        :assertpkg unzip diff
+        :fetch ku_TR.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../ku_TR.zip
+            :sys {force} diff ../ku_TR.orig.aff ku_TR.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy ku_TR.aff ../ku_TR.new.aff
+            :sys {force} diff ../ku_TR.orig.dic ku_TR.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy ku_TR.dic ../ku_TR.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete ku_TR.zip
+
+
+# vim: set sts=4 sw=4 :
