diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile
index 7068943..3505c03 100644
--- a/runtime/doc/Makefile
+++ b/runtime/doc/Makefile
@@ -40,6 +40,7 @@
 	helphelp.txt \
 	howto.txt \
 	if_cscop.txt \
+	if_lua.txt \
 	if_mzsch.txt \
 	if_ole.txt \
 	if_perl.txt \
@@ -171,6 +172,7 @@
 	helphelp.html \
 	howto.html \
 	if_cscop.html \
+	if_lua.html \
 	if_mzsch.html \
 	if_ole.html \
 	if_perl.html \
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 34a1fdb..0860aab 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -6095,6 +6095,7 @@
 listcmds		Compiled with commands for the buffer list |:files|
 			and the argument list |arglist|.
 localmap		Compiled with local mappings and abbr. |:map-local|
+lua			Compiled with Lua interface |Lua|.
 mac			Macintosh version of Vim.
 macunix			Macintosh version of Vim, using Unix files (OS-X).
 menu			Compiled with support for |:menu|.
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 9fe2c6b..79468bb 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -158,6 +158,7 @@
 
 Interfaces ~
 |if_cscop.txt|	using Cscope with Vim
+|if_lua.txt|	Lua interface
 |if_mzsch.txt|	MzScheme interface
 |if_perl.txt|	Perl interface
 |if_pyth.txt|	Python interface
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
new file mode 100644
index 0000000..ff3c0f2
--- /dev/null
+++ b/runtime/doc/if_lua.txt
@@ -0,0 +1,239 @@
+*if_lua.txt*    For Vim version 7.3a.  Last change: 2008 Aug 31
+
+
+		  VIM REFERENCE MANUAL    by Luis Carvalho
+
+
+The Lua Interface to Vim				*lua* *Lua*
+
+1. Commands			|lua-commands|
+2. The vim module		|lua-vim|
+3. Buffer userdata		|lua-buffer|
+4. Window userdata		|lua-window|
+
+{Vi does not have any of these commands}
+
+The Lua interface is available only when Vim was compiled with the
+|+lua| feature.
+
+==============================================================================
+1. Commands						*lua-commands*
+
+							*:lua*
+:[range]lua {chunk}
+			Execute Lua chunk {chunk}.    {not in Vi}
+
+Examples:
+>
+	:lua print("Hello, Vim!")
+	:lua local curbuf = vim.buffer() curbuf[7] = "line #7"
+<
+
+:[range]lua << {endmarker}
+{script}
+{endmarker}
+			Execute Lua script {script}.  {not in Vi}
+			Note: This command doesn't work when the Lua
+			feature wasn't compiled in.  To avoid errors, see
+			|script-here|.
+
+{endmarker} must NOT be preceded by any white space.  If {endmarker} is
+omitted from after the "<<", a dot '.' must be used after {script}, like
+for the |:append| and |:insert| commands.
+This form of the |:lua| command is mainly useful for including Lua code
+in Vim scripts.
+
+Example:
+>
+	function! CurrentLineInfo()
+	lua << EOF
+	local linenr = vim.window().line
+	local curline = vim.buffer()[linenr]
+	print(string.format("Current line [%d] has %d chars",
+		linenr, #curline))
+	EOF
+	endfunction
+<
+
+							*:luado*
+:[range]luado {body}	Execute Lua function$function (line)${body}$end$ for
+			each line in the [range], with the function argument
+			being set to the text of each line in turn, without a
+			trailing <EOL>. If the value returned by the function
+			is a string it becomes the text of the line in the
+			current turn. The default for [range] is the whole
+			file: "1,$".                  {not in Vi}
+
+Examples:
+>
+	:luado return string.format("%s\t%d", line:reverse(), #line)
+
+	:lua require"lpeg"
+	:lua -- balanced parenthesis grammar:
+	:lua bp = lpeg.P{ "(" * ((1 - lpeg.S"()") + lpeg.V(1))^0 * ")" }
+	:luado if bp:match(line) then return "-->\t" .. line end
+<
+
+							*:luafile*
+:[range]luafile {file}
+			Execute Lua script in {file}. {not in Vi}
+			The whole argument is used as a single file name.
+
+Examples:
+>
+	:luafile script.lua
+	:luafile %
+<
+
+All these commands execute a Lua chunk from either the command line (:lua and
+:luado) or a file (:luafile) with the given line [range]. Similarly to the Lua
+interpreter, each chunk has its own scope and so only global variables are
+shared between command calls. Lua default libraries$table$,$string$,$math$,
+and$package$are available,$io$and$debug$are not, and$os$is restricted to
+functions$date$,$clock$,$time$,$difftime$, and$getenv$. In addition,
+Lua$print$function has its output redirected to the Vim message area, with
+arguments separated by a white space instead of a tab.
+
+Lua uses the "vim" module (see|lua-vim|) to issue commands to Vim
+and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
+procedures that alter buffer content, open new buffers, and change cursor
+position are restricted when the command is executed in the|sandbox|.
+
+
+==============================================================================
+2. The vim module					*lua-vim*
+
+Lua interfaces Vim through the "vim" module. The first and last line of the
+input range are stored in$vim.firstline$and$vim.lastline$respectively. The
+module also includes routines for buffer, window, and current line queries,
+Vim evaluation and command execution, and others.
+
+	$vim.isbuffer(value)$	Returns#true#if$value$is a buffer userdata and
+				$false$otherwise (see|lua-buffer|).
+
+	$vim.buffer($[arg]$)$	If$arg$is a number, returns buffer with number
+				$arg$in the buffer list or, if$arg$is
+				a string, returns buffer whose full or short
+				name is$arg$. In both cases, returns#nil#if
+				the buffer is not found. Otherwise, if
+				$toboolean(arg)$is#true#returns the first
+				buffer in the buffer list or else the current
+				buffer.
+
+	$vim.iswindow(value)$	Returns#true#if$value$is a window userdata and
+				$false$otherwise (see|lua-window|).
+
+	$vim.window($[arg]$)$	If$arg$is a number, returns window with number
+				$arg$or#nil#if not found. Otherwise, if
+				$toboolean(arg)$is#true#returns the first
+				window or else the current window.
+
+	$vim.command(${cmd}$)$	Executes the vim (ex-mode) command {cmd}.
+				Examples: >
+					:lua vim.command"set tw=60"
+					:lua vim.command"normal ddp"
+<
+	$vim.eval(${expr}$)$	Evaluates expression {expr} (see|expression|),
+				converts the result to Lua, and returns it.
+				Vim strings and numbers are directly converted
+				to Lua strings and numbers respectively. Vim
+				lists and dictionaries are converted to Lua
+				tables (lists become integer-keyed tables).
+				Examples: >
+					:lua tw = vim.eval"&tw"
+					:lua print(vim.eval"{'a': 'one'}".a)
+<
+	$vim.line()$		Returns the current line (without the trailing
+				<EOL>), a Lua string.
+
+	$vim.beep()$		Beeps.
+
+	$vim.open(${fname}$)$	Opens a new buffer for file {fname} and
+				returns it. Note that the buffer is not set as
+				current.
+
+
+==============================================================================
+3. Buffer userdata					*lua-buffer*
+
+Buffer userdata represent vim buffers. A buffer userdata$b$has the following
+properties and methods:
+
+Properties
+----------
+	#o#$b()$sets$b$as the current buffer.
+	#o#$#b$is the number of lines in buffer$b$.
+	#o#$b[k]$represents line number$k$:$b[k] = newline$replaces line$k$
+	    with string$newline$and$b[k] =$#nil#deletes line$k$.
+	#o#$b.name$contains the short name of buffer$b$(read-only).
+	#o#$b.fname$contains the full name of buffer$b$(read-only).
+	#o#$b.number$contains the position of buffer$b$in the buffer list
+	    (read-only).
+
+Methods
+-------
+	#o#$b:insert(newline$[, pos]$)$inserts string$newline$at position$pos$
+	    in the buffer. The default value for$pos$is$#b + 1$. If$pos == 0$
+	    then$newline$becomes the first line in the buffer.
+	#o#$b:next()$returns the buffer next to$b$in the buffer list.
+	#o#$b:previous()$returns the buffer previous to$b$in the buffer list.
+	#o#$b:isvalid()$returns#true#if buffer$b$corresponds to a "real" (not
+	    freed from memory) Vim buffer.
+
+Examples:
+>
+	:lua b = vim.buffer() -- current buffer
+	:lua print(b.name, b.number)
+	:lua b[1] = "first line"
+	:lua b:insert("FIRST!", 0)
+	:lua b[1] = nil -- delete top line
+	:lua for i=1,3 do b:insert(math.random()) end
+	:3,4lua for i=vim.lastline,vim.firstline,-1 do b[i] = nil end
+	:lua vim.open"myfile"() -- open buffer and set it as current
+
+	function! ListBuffers()
+	lua << EOF
+	local b = vim.buffer(true) -- first buffer in list
+	while b ~= nil do
+		print(b.number, b.name, #b)
+		b = b:next()
+	end
+	vim.beep()
+	EOF
+	endfunction
+<
+
+==============================================================================
+4. Window userdata					*lua-window*
+
+Window objects represent vim windows. A window userdata$w$has the following
+properties and methods:
+
+Properties
+----------
+	#o#$w()$sets$w$as the current window.
+	#o#$w.buffer$contains the buffer of window$w$(read-only).
+	#o#$w.line$represents the cursor line position in window$w$.
+	#o#$w.col$represents the cursor column position in window$w$.
+	#o#$w.width$represents the width of window$w$.
+	#o#$w.height$represents the height of window$w$.
+
+Methods
+-------
+	#o#$w:next()$returns the window next to$w$.
+	#o#$w:previous()$returns the window previous to$w$.
+	#o#$w:isvalid()$returns#true#if window$w$corresponds to a "real" (not
+	    freed from memory) Vim window.
+
+Examples:
+>
+	:lua w = vim.window() -- current window
+	:lua print(w.buffer.name, w.line, w.col)
+	:lua w.width = w.width + math.random(10)
+	:lua w.height = 2 * math.random() * w.height
+	:lua n,w = 0,vim.window(true) while w~=nil do n,w = n + 1,w:next() end
+	:lua print("There are " .. n .. " windows")
+<
+
+==============================================================================
+ vim:tw=78:ts=8:ft=help:norl:
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index 743c712..6790e9c 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1299,6 +1299,9 @@
 |:ltag|		:lt[ag]		jump to tag and add matching tags to the
 				location list
 |:lunmap|	:lu[nmap]	like ":unmap!" but includes Lang-Arg mode
+|:lua|		:lua		execute |Lua| command
+|:luado|	:luad[o]	execute Lua command for each line
+|:luafile|	:luaf[ile]	execute |Lua| script file
 |:lvimgrep|	:lv[imgrep]	search for pattern in files
 |:lvimgrepadd|	:lvimgrepa[dd]	like :vimgrep, but append to current list
 |:lwindow|	:lw[indow]	open or close location window
diff --git a/runtime/doc/tags b/runtime/doc/tags
index e72655d..6be654a 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1165,6 +1165,8 @@
 +lispindent	various.txt	/*+lispindent*
 +listcmds	various.txt	/*+listcmds*
 +localmap	various.txt	/*+localmap*
++lua	various.txt	/*+lua*
++lua/dyn	various.txt	/*+lua\/dyn*
 +menu	various.txt	/*+menu*
 +mksession	various.txt	/*+mksession*
 +modify_fname	various.txt	/*+modify_fname*
@@ -2365,6 +2367,9 @@
 :lt	tagsrch.txt	/*:lt*
 :ltag	tagsrch.txt	/*:ltag*
 :lu	map.txt	/*:lu*
+:lua	if_lua.txt	/*:lua*
+:luado	if_lua.txt	/*:luado*
+:luafile	if_lua.txt	/*:luafile*
 :lunmap	map.txt	/*:lunmap*
 :lv	quickfix.txt	/*:lv*
 :lvimgrep	quickfix.txt	/*:lvimgrep*
@@ -4280,6 +4285,7 @@
 Linux-backspace	options.txt	/*Linux-backspace*
 List	eval.txt	/*List*
 Lists	eval.txt	/*Lists*
+Lua	if_lua.txt	/*Lua*
 M	motion.txt	/*M*
 MDI	starting.txt	/*MDI*
 MS-DOS	os_msdos.txt	/*MS-DOS*
@@ -6055,6 +6061,7 @@
 hit-return	message.txt	/*hit-return*
 hitest.vim	syntax.txt	/*hitest.vim*
 hjkl	usr_02.txt	/*hjkl*
+hl-ColorColumn	syntax.txt	/*hl-ColorColumn*
 hl-Conceal	syntax.txt	/*hl-Conceal*
 hl-Cursor	syntax.txt	/*hl-Cursor*
 hl-CursorColumn	syntax.txt	/*hl-CursorColumn*
@@ -6248,6 +6255,7 @@
 idl-syntax	syntax.txt	/*idl-syntax*
 idl.vim	syntax.txt	/*idl.vim*
 if_cscop.txt	if_cscop.txt	/*if_cscop.txt*
+if_lua.txt	if_lua.txt	/*if_lua.txt*
 if_mzsch.txt	if_mzsch.txt	/*if_mzsch.txt*
 if_ole.txt	if_ole.txt	/*if_ole.txt*
 if_perl.txt	if_perl.txt	/*if_perl.txt*
@@ -6424,6 +6432,11 @@
 long-lines	version5.txt	/*long-lines*
 lowercase	change.txt	/*lowercase*
 lpc.vim	syntax.txt	/*lpc.vim*
+lua	if_lua.txt	/*lua*
+lua-buffer	if_lua.txt	/*lua-buffer*
+lua-commands	if_lua.txt	/*lua-commands*
+lua-vim	if_lua.txt	/*lua-vim*
+lua-window	if_lua.txt	/*lua-window*
 lua.vim	syntax.txt	/*lua.vim*
 m	motion.txt	/*m*
 m'	motion.txt	/*m'*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index fab6297..60e7f51 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1107,9 +1107,6 @@
 - Patch for adding "J" flag to 'cinoptions': placement of jump label.  (Manuel
   Konig, 2010 Feb 19)  Update by Lech Lorens, Feb 22.
   Need another name, "J" is now used for Javascript.
--   Add Lua interface? (Wolfgang Oertl) patch by Luis Carvalho, 2008 Sep 5
-	Patch for Make_ming.mak from Paul Moore (2008 Sep 1)
-      http://code.google.com/p/vim-iflua/  Download  vim72-lua-0.7.patch.gz
 Needs some work:
 - Have a look at patch to enable screen access from Python. (Marko Mahnic,
   2010 Apr 12)
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index eed7d9c..a563972 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -338,6 +338,8 @@
 N  *+listcmds*		Vim commands for the list of buffers |buffer-hidden|
 			and argument list |:argdelete|
 N  *+localmap*		Support for mappings local to a buffer |:map-local|
+m  *+lua*		|Lua| interface
+m  *+lua/dyn*		|Lua| interface |/dyn|
 N  *+menu*		|:menu|
 N  *+mksession*		|:mksession|
 N  *+modify_fname*	|filename-modifiers|
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 8b537fc..b047c61 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -7172,6 +7172,9 @@
 Removed support for GTK 1.  It was no longer maintained and required a lot of
 #ifdefs in the source code.  GTK 2 should be available for every system.
 
+It is no longer allowed to set the 'encoding' option from a modeline.  It
+would corrupt the text.
+
 
 Added							*added-7.3*
 -----
@@ -7188,6 +7191,9 @@
 
 Added the |+conceal| feature.  (Vince Negri)
 
+Added the 'colorcolumn' option: highlight one or more columns in a window.
+E.g. to highlight the column after 'textwidth'. (partly by Gregor Uhlenheuer)
+
 Added support for NetBeans in a terminal.  Added |:nbstart| and |:nbclose|.
 (Xavier de Gaye)
 
@@ -7196,6 +7202,9 @@
 
 gettabvar() and settabvar() functions. (Yegappan Lakshmanan)
 
+Added the |Lua| interface.
+
+
 New syntax files:
 TODO
 
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 0365a90..18566fc 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -411,7 +411,7 @@
 	etc., etc.  See |eval|.
 	Debugging and profiling are supported. |debug-scripts| |profile|
 	If this is not enough, an interface is provided to |Python|, |Ruby|,
-	|Tcl|, |Perl| and |MzScheme|.
+	|Tcl|, |Lua|, |Perl| and |MzScheme|.
 
 Viminfo.						|viminfo-file|
 	The command-line history, marks and registers can be stored in a file
