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 :
