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