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