diff --git a/runtime/spell/ga/main.aap b/runtime/spell/ga/main.aap
new file mode 100644
index 0000000..d745de5
--- /dev/null
+++ b/runtime/spell/ga/main.aap
@@ -0,0 +1,79 @@
+# Aap recipe for Irish 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    = ga_IE.aff ga_IE.dic
+
+all: $SPELLDIR/ga.latin1.spl $SPELLDIR/ga.utf-8.spl ../README_ga.txt
+
+# I don't have an Irish locale, use the Dutch one instead.
+$SPELLDIR/ga.latin1.spl : $FILES
+        :sys env LANG=nl_NL.ISO8859-1
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/ga ga_IE" -c q
+
+$SPELLDIR/ga.utf-8.spl : $FILES
+        :sys env LANG=nl_NL.UTF-8
+		$VIM -u NONE -e -c "mkspell! $SPELLDIR/ga ga_IE" -c q
+
+../README_ga.txt : README_ga_IE.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%} ga_IE.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.
+ga_IE.aff ga_IE.dic: {buildcheck=}
+        :assertpkg unzip patch
+        :fetch ga_IE.zip
+        :sys $UNZIP ga_IE.zip
+        :delete ga_IE.zip
+        @if not os.path.exists('ga_IE.orig.aff'):
+            :copy ga_IE.aff ga_IE.orig.aff
+        @if not os.path.exists('ga_IE.orig.dic'):
+            :copy ga_IE.dic ga_IE.orig.dic
+        @if os.path.exists('ga_IE.diff'):
+            :sys patch <ga_IE.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 ga_IE.orig.aff ga_IE.aff >ga_IE.diff
+        :sys {force} diff -a -C 1 ga_IE.orig.dic ga_IE.dic >>ga_IE.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 ga_IE.zip
+        :mkdir tmp
+        :cd tmp
+        @try:
+            @import stat
+            :sys $UNZIP ../ga_IE.zip
+            :sys {force} diff ../ga_IE.orig.aff ga_IE.aff >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy ga_IE.aff ../ga_IE.new.aff
+            :sys {force} diff ../ga_IE.orig.dic ga_IE.dic >d
+            @if os.stat('d')[stat.ST_SIZE] > 0:
+                :copy ga_IE.dic ../ga_IE.new.dic
+        @finally:
+            :cd ..
+            :delete {r}{f}{q} tmp
+            :delete ga_IE.zip
+
+
+# vim: set sts=4 sw=4 :
