diff --git a/runtime/spell/nn/main.aap b/runtime/spell/nn/main.aap
new file mode 100644
index 0000000..da71b20
--- /dev/null
+++ b/runtime/spell/nn/main.aap
@@ -0,0 +1,78 @@
+# 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:
+    :progsearch VIM vim
+
+SPELLDIR = ..
+FILES    = nn_NO.aff nn_NO.dic
+
+all: $SPELLDIR/nn.latin1.spl $SPELLDIR/nn.utf-8.spl ../README_nn.txt
+
+$SPELLDIR/nn.latin1.spl : $FILES
+        :sys env LANG=no_NO.ISO8859-1
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/nn nn_NO" -c q
+
+$SPELLDIR/nn.utf-8.spl : $FILES
+        :sys env LANG=no_NO.UTF-8
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/nn nn_NO" -c q
+
+../README_nn.txt : README_nn_NO.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%} nn_NO.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.
+nn_NO.aff nn_NO.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch nn_NO.zip
+        :sys $UNZIP nn_NO.zip
+        :delete nn_NO.zip
+        @if not os.path.exists('nn_NO.orig.aff'):
+            :copy nn_NO.aff nn_NO.orig.aff
+        @if not os.path.exists('nn_NO.orig.dic'):
+            :copy nn_NO.dic nn_NO.orig.dic
+        @if os.path.exists('nn_NO.diff'):
+            :sys patch <nn_NO.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 nn_NO.orig.aff nn_NO.aff >nn_NO.diff
+        :sys {force} diff -a -C 1 nn_NO.orig.dic nn_NO.dic >>nn_NO.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 nn_NO.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../nn_NO.zip
+            :sys {force} diff ../nn_NO.orig.aff nn_NO.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy nn_NO.aff ../nn_NO.new.aff
+            :sys {force} diff ../nn_NO.orig.dic nn_NO.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy nn_NO.dic ../nn_NO.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete nn_NO.zip
+
+
+# vim: set sts=4 sw=4 :
