updated for version 7.0093
diff --git a/runtime/indent/lua.vim b/runtime/indent/lua.vim
index ace7fd1..ffe03be 100644
--- a/runtime/indent/lua.vim
+++ b/runtime/indent/lua.vim
@@ -2,7 +2,7 @@
 " Language:	Lua script
 " Maintainer:	Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
 " First Author:	Max Ischenko <mfi 'at' ukr.net>
-" Last Change:	2005 Jun 09
+" Last Change:	2005 Jun 23
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
@@ -10,19 +10,19 @@
 endif
 let b:did_indent = 1
 
+setlocal indentexpr=GetLuaIndent()
+
+" To make Vim call GetLuaIndent() when it finds '\s*end' or '\s*until'
+" on the current line ('else' is default and includes 'elseif').
+setlocal indentkeys+=0=end,0=until
+
+setlocal autoindent
+
 " Only define the function once.
 if exists("*GetLuaIndent")
   finish
 endif
 
-setlocal indentexpr=GetLuaIndent()
-
-" To make Vim call GetLuaIndent() when it finds '\s*end' or '\s*until'
-" on the current line (else is default).
-setlocal indentkeys+=0=end,0=until
-
-setlocal autoindent
-
 function! GetLuaIndent()
   " Find a non-blank line above the current line.
   let lnum = prevnonblank(v:lnum - 1)
@@ -32,18 +32,19 @@
     return 0
   endif
 
-  " Add a 'shiftwidth' after lines beginning with:
-  " function, if, for, while, repeat, else, elseif, '{'
+  " Add a 'shiftwidth' after lines that start a block:
+  " 'function', 'if', 'for', 'while', 'repeat', 'else', 'elseif', '{'
   let ind = indent(lnum)
   let flag = 0
   let prevline = getline(lnum)
-  if prevline =~ '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\)' || prevline =~ '{\s*$' || prevline =~ '\<function\>\s*\%(\k\|[.:]\)\{-}\s*('
+  if prevline =~ '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\|then\>\)'
+        \ || prevline =~ '{\s*$' || prevline =~ '\<function\>\s*\%(\k\|[.:]\)\{-}\s*('
     let ind = ind + &shiftwidth
     let flag = 1
   endif
 
   " Subtract a 'shiftwidth' after lines ending with
-  " 'end' when they begin with while, if, for, etc.
+  " 'end' when they begin with 'while', 'if', 'for', etc. too.
   if flag == 1 && prevline =~ '\<end\>\|\<until\>'
     let ind = ind - &shiftwidth
   endif