diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index 1d62e54..becbeb3 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -1,4 +1,4 @@
-*diff.txt*      For Vim version 7.3.  Last change: 2010 Jul 31
+*diff.txt*      For Vim version 7.3.  Last change: 2010 Sep 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -261,10 +261,12 @@
 							*do*
 do		Same as ":diffget" without argument or range.  The "o" stands
 		for "obtain" ("dg" can't be used, it could be the start of
-		"dgg"!).
+		"dgg"!). Note: this doesn't work in Visual mode.
 
 							*dp*
 dp		Same as ":diffput" without argument or range.
+		Note: this doesn't work in Visual mode.
+
 
 When no [range] is given, the diff at the cursor position or just above it is
 affected.  When [range] is used, Vim tries to only put or get the specified
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 9522d35..9928f8b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2010 Sep 14
+*eval.txt*	For Vim version 7.3.  Last change: 2010 Sep 29
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1115,8 +1115,8 @@
 
 
 ==============================================================================
-3. Internal variable				*internal-variables* *E121*
-									*E461*
+3. Internal variable				*internal-variables* *E461*
+
 An internal variable name can be made up of letters, digits and '_'.  But it
 cannot start with a digit.  It's also possible to use curly braces, see
 |curly-braces-names|.
@@ -6741,7 +6741,8 @@
 :let [{name}, ..., ; {lastname}] -= {expr1}
 			Like above, but append/add/subtract the value for each
 			|List| item.
-							*E106*
+
+								*E121*
 :let {var-name}	..	List the value of variable {var-name}.	Multiple
 			variable names may be given.  Special names recognized
 			here:				*E738*
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index 092f5f4..91dd4c6 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -1,4 +1,4 @@
-*if_cscop.txt*  For Vim version 7.3.  Last change: 2009 Mar 18
+*if_cscop.txt*  For Vim version 7.3.  Last change: 2010 Sep 29
 
 
 		  VIM REFERENCE MANUAL    by Andy Kahn
@@ -112,8 +112,7 @@
 	    :cscope add /projects/vim/cscope.out /usr/local/vim
 	    :cscope add cscope.out /usr/local/vim -C
 <
-				      *cscope-find* *cs-find*
-						*E565* *E567*
+				      *cscope-find* *cs-find* *E567*
     find  : Query cscope.  All cscope query options are available
 	    except option #5 ("Change this grep pattern").
 
@@ -198,7 +197,7 @@
 
 	    USAGE   :cs help
 
-						*E260* *E261*
+							*E261*
     kill  : Kill a cscope connection (or kill all cscope connections).
 
 	    USAGE   :cs kill {num|partial_name}
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 9fe5587..aa11ba7 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt*    For Vim version 7.3.  Last change: 2010 Sep 15
+*insert.txt*    For Vim version 7.3.  Last change: 2010 Sep 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1766,6 +1766,11 @@
 containing only a ".".  Watch out for lines starting with a backslash, see
 |line-continuation|.
 
+When in Ex mode (see |-e|) a backslash at the end of the line can be used to
+insert a NUL character.  To be able to have a line ending in a backslash use
+two backslashes.  This means that the number of backslashes is halved, but
+only at the end of the line.
+
 NOTE: These commands cannot be used with |:global| or |:vglobal|.
 ":append" and ":insert" don't work properly in between ":if" and
 ":endif", ":for" and ":endfor", ":while" and ":endwhile".
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 9fe88bb..7519365 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -1,4 +1,4 @@
-*intro.txt*     For Vim version 7.3.  Last change: 2010 Jul 20
+*intro.txt*     For Vim version 7.3.  Last change: 2010 Sep 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -300,7 +300,7 @@
 
 []		Characters in square brackets are optional.
 
-						    *count* *[count]* *E489*
+						    *count* *[count]*
 [count]		An optional number that may precede the command to multiply
 		or iterate the command.  If no number is given, a count of one
 		is used, unless otherwise noted.  Note that in this manual the
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index b21dd42..055d333 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 7.3.  Last change: 2010 Jul 31
+*map.txt*       For Vim version 7.3.  Last change: 2010 Sep 29
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1203,6 +1203,7 @@
 	-complete=augroup	autocmd groups
 	-complete=buffer	buffer names
 	-complete=command	Ex command (and arguments)
+	-complete=cscope	|:cscope| suboptions
 	-complete=dir		directory names
 	-complete=environment	environment variable names
 	-complete=event		autocommand events
@@ -1216,6 +1217,7 @@
 	-complete=menu		menus
 	-complete=option	options
 	-complete=shellcmd	Shell command
+	-complete=sign		|:sign| suboptions
 	-complete=syntax	syntax file names |'syntax'|
 	-complete=tag		tags
 	-complete=tag_listfiles	tags, file names are shown when CTRL-D is hit
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index 63f447e..6b186b3 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -1,4 +1,4 @@
-*netbeans.txt*  For Vim version 7.3.  Last change: 2010 Aug 20
+*netbeans.txt*  For Vim version 7.3.  Last change: 2010 Sep 29
 
 
 		  VIM REFERENCE MANUAL    by Gordon Prieur et al.
@@ -820,7 +820,7 @@
 ==============================================================================
 7. NetBeans commands					*netbeans-commands*
 
-							*:nbstart* *E511*
+							*:nbstart* *E511* *E838*
 :nbs[tart] {connection}	Start a new Netbeans session with {connection} as the
 			socket connection parameters.  The format of
 			{connection} is described in |netbeans-parameters|.
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 171933b..b7a3fb6 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.3.  Last change: 2010 Sep 14
+*syntax.txt*	For Vim version 7.3.  Last change: 2010 Sep 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -2258,7 +2258,7 @@
 For highlighted standard exceptions: >
 	:let python_highlight_exceptions = 1
 
-For highlighted trailing whitespace and mix of spaces and tabs:
+For highlighted trailing whitespace and mix of spaces and tabs: >
 	:let python_highlight_space_errors = 1
 
 If you want all possible Python highlighting (the same as setting the
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 3ebcf41..c74b00a 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3420,7 +3420,6 @@
 E103	diff.txt	/*E103*
 E104	digraph.txt	/*E104*
 E105	mbyte.txt	/*E105*
-E106	eval.txt	/*E106*
 E107	eval.txt	/*E107*
 E108	eval.txt	/*E108*
 E109	eval.txt	/*E109*
@@ -3587,7 +3586,6 @@
 E258	remote.txt	/*E258*
 E259	if_cscop.txt	/*E259*
 E26	rileft.txt	/*E26*
-E260	if_cscop.txt	/*E260*
 E261	if_cscop.txt	/*E261*
 E262	if_cscop.txt	/*E262*
 E263	if_pyth.txt	/*E263*
@@ -3836,7 +3834,6 @@
 E486	pattern.txt	/*E486*
 E487	options.txt	/*E487*
 E488	message.txt	/*E488*
-E489	intro.txt	/*E489*
 E49	message.txt	/*E49*
 E490	fold.txt	/*E490*
 E492	message.txt	/*E492*
@@ -3919,7 +3916,6 @@
 E562	if_cscop.txt	/*E562*
 E563	if_cscop.txt	/*E563*
 E564	if_cscop.txt	/*E564*
-E565	if_cscop.txt	/*E565*
 E566	if_cscop.txt	/*E566*
 E567	if_cscop.txt	/*E567*
 E568	if_cscop.txt	/*E568*
@@ -4219,6 +4215,7 @@
 E835	options.txt	/*E835*
 E836	if_pyth.txt	/*E836*
 E837	if_pyth.txt	/*E837*
+E838	netbeans.txt	/*E838*
 E84	windows.txt	/*E84*
 E85	options.txt	/*E85*
 E86	windows.txt	/*E86*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 989fb9c..d1b6c99 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2010 Sep 21
+*todo.txt*      For Vim version 7.3.  Last change: 2010 Sep 29
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,32 +30,18 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Patch for Mingw build file (Jon, 2010 Aug 22)
-Patch for loading different Ruby versions. (Jon, 2010 Aug 23)
-
-Document cscope and sign completion for user commands. (Peter Odding, 2010 Aug
-19)
-
-Problem with \NL in Ex script. (Ray Frish, 2010 Aug 10)
-
-":e ~br<Tab>" does not complete to ":e /home/bram/".  Crash too?
-
-Runtime file for Falcon. (Steven Oliver, 2010 Sep 14)
-
-Patch to fix error tags in help files. (Dominique Pelle, 2010 Aug 25)
-
-Patch to fix :nbstart silently failing. (Xavier de Gaye, 2010 Aug 20)
-Another one for when Athena has netbeans support.
-
-patch for 3 bugs reported by smatch. (Dominique Pelle, 2010 Aug 23)
+Cursor position wrong when 'formatoptions' contains "a". (Moshe Kamensky, 2010
+Sep 7, Gary Johnson, 2010 Sep 14)
+Formatoptions cause cursor to jump. (ZyX, 2010 Aug 22)
+Caused by revision 2294, "Make joining a range of lines much faster. (Milan
+Vancura)" ?
+Patch by Carlo Teubner, 2010 Sep 25.  Test Sep 26.
 
 'cursorline' is displayed too short when there are concealed characters and
 'list' is set, 'listchars' at default value. (Dennis Preiser, 2010 Aug 15)
 
 Hang on slave PTY on Mac.  Patch from Nikola Knezevic, 2010 Aug 29.
 
-Patch to support netbeans under Athena. (Xavier de Gaye, 2010 Aug 20)
-
 Patch to fix sign type negative and memory not freed. (Xavier de Gaye, 2010
 Aug 20)
 
@@ -69,8 +55,19 @@
 Patch for :mksession not escaping file name properly. (Peter Odding, 2010 Sep
 19)
 
+Patch for CTRL-] in help file doing wrong escaping. (Carlo Teubner, 2010 Sep
+25)
+
+Patch to support List and Dict in .viminfo. (Christian Brabandt, 2010 Sep 24)
+Sep 26 with a test.
+
 Patch for :grep docs. (Britton Kerin, 2010 Aug 31)
 
+Patch for dynamic loading Ruby on Unix. (Jon, 2010 Aug 23)
+Included, but also need a change to configure.
+
+Replacement R syntax file. (Jakson A. Aquino, 2010 Sep 29)
+
 Windows keys not set properly on Windows 7?  (cncyber, 2010 Aug 26)
 
 maparg() doesn't return the flags, such as <buffer>, <script>, <silent>.
@@ -88,6 +85,8 @@
 
 Patch for 2html to support 'fileencoding'. (Benjamin Fritz, 2010 Sep 10)
 
+Patch to use 'previewheight' for popup menu. (Benjamin Haskell, 2010 Sep 29)
+
 CTRL-] on help tag |/[\n]| doesn't jump to the right place. (Tony Mechelynck,
 2010 Aug 8)
 
@@ -106,8 +105,12 @@
 GTK: drawing a double-width combining character over single-width characters
 doesn't look right. (Dominique Pelle, 2010 Aug 8)
 
-copy/paste between Vim and Google chrome doesn't work well for multi-byte
+Copy/paste between Vim and Google chrome doesn't work well for multi-byte
 characters. (Ben Haskell, 2010 Sep 17)
+When putting text in the cut buffer (when exiting) and conversion doesn't work
+properly, Prepend "ENC==={value of 'enc'}:" to the text and don't convert?
+Then it should at least work from Vim to Vim and in other applications it's
+clear why it doesn't work.
 
 Editing a file with a ^M with 'ff' set to "mac", opening a help file, then the
 ^M is displayed as ^J sometimes.  Getting 'ff' value from wrong window/buffer?
@@ -231,12 +234,18 @@
 In command line window ":close" doesn't work properly. (Tony Mechelynck, 2009
 Jun 1)
 
+Cannot use getchar() inside :normal and using an expression mapping.  Is this
+supposed to work?  (XyX, 2010 Sep 22)
+
 When a:base in 'completefunc' starts with a number it's passed as a number,
 not a string. (Sean Ma)  Need to add flag to call_func_retlist() to force a
 string value.
 
 There is no command line completion for ":lmap".
 
+":e ~br<Tab>" does not complete to ":e /home/bram/".  Would need to use
+getpwent() to find all the matches.
+
 Invalid read error in Farsi mode. (Dominique Pelle, 2009 Aug 2)
 
 For running gvim on an USB stick: avoid the OLE registration.  Use a command
@@ -245,12 +254,6 @@
 When a mapping exists both for insert mode and lang-insert mode, the last one
 doesn't work. (Tyru, 2010 May 6)  Or is this intended?
 
-Cursor position wrong when 'formatoptions' contains "a". (Moshe Kamensky, 2010
-Sep 7, Gary Johnson, 2010 Sep 14)
-Formatoptions cause cursor to jump. (ZyX, 2010 Aug 22)
-Caused by revision 2294, "Make joining a range of lines much faster. (Milan
-Vancura)" ?
-
 Still a problem with ":make" in the wrong directory.  Caused by ":bufdo".
 (Ajit Thakkar, 2009 Jul 1) More information Jul 9, Jul 15.
 Caused by "doautoall syntaxset BufEnter *" in syntax/nosyntax.vim ?
diff --git a/runtime/doc/undo.txt b/runtime/doc/undo.txt
index afa959b..4b4104e 100644
--- a/runtime/doc/undo.txt
+++ b/runtime/doc/undo.txt
@@ -1,4 +1,4 @@
-*undo.txt*      For Vim version 7.3.  Last change: 2010 Sep 14
+*undo.txt*      For Vim version 7.3.  Last change: 2010 Sep 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -137,7 +137,7 @@
 			The "time" column is the time this change was made.
 			The "saved" column specifies, if this change was
 			written to disk and which file write it was. This can
-			be used with the |later| and |earlier| commands.
+			be used with the |:later| and |:earlier| commands.
 			For more details use the |undotree()| function.
 
 							*g-*
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 6569b25..cf35b74 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -1,4 +1,4 @@
-*various.txt*   For Vim version 7.3.  Last change: 2010 Sep 14
+*various.txt*   For Vim version 7.3.  Last change: 2010 Sep 23
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -167,8 +167,8 @@
 :norm[al][!] {commands}					*:norm* *:normal*
 			Execute Normal mode commands {commands}.  This makes
 			it possible to execute Normal mode commands typed on
-			the command-line.  {commands} is executed like it is
-			typed.  For undo all commands are undone together.
+			the command-line.  {commands} are executed like they
+			are typed.  For undo all commands are undone together.
 			Execution stops when an error is encountered.
 			If the [!] is given, mappings will not be used.
 			{commands} should be a complete command.  If
diff --git a/runtime/doc/vi_diff.txt b/runtime/doc/vi_diff.txt
index 5d6706b..d81e0e5 100644
--- a/runtime/doc/vi_diff.txt
+++ b/runtime/doc/vi_diff.txt
@@ -1,4 +1,4 @@
-*vi_diff.txt*   For Vim version 7.3.  Last change: 2010 Jul 20
+*vi_diff.txt*   For Vim version 7.3.  Last change: 2010 Sep 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -90,6 +90,7 @@
 Number of different highlighting types: over 30000
 Range of a Number variable:  -2147483648 to 2147483647 (more on 64 bit
 			   systems)
+Maximum length of a line in a tags file: 512 bytes.
 
 Information for undo and text in registers is kept in memory, thus when making
 (big) changes the amount of (virtual) memory available limits the number of
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index afc0740..79090f0 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2010 Jul 30
+" Last Change:	2010 Sep 29
 
 " Listen very carefully, I will say this only once
 if exists("did_load_filetypes")
@@ -677,6 +677,9 @@
 " Exports
 au BufNewFile,BufRead exports			setf exports
 
+" Falcon
+au BufNewFile,BufRead *.fal 			setf falcon
+
 " Fantom
 au BufNewFile,BufRead *.fan,*.fwt		setf fan
 
diff --git a/runtime/ftplugin/falcon.vim b/runtime/ftplugin/falcon.vim
new file mode 100644
index 0000000..45fd0a4
--- /dev/null
+++ b/runtime/ftplugin/falcon.vim
@@ -0,0 +1,43 @@
+" Vim filetype plugin file
+" Language:     Falcon
+" Author:       Steven Oliver <oliver.steven@gmail.com>
+" Copyright:    Copyright (c) 2009, 2010 Steven Oliver
+" License:      You may redistribute this under the same terms as Vim itself
+" --------------------------------------------------------------------------
+" GetLatestVimScripts: 2762 1 :AutoInstall: falcon.vim
+
+" Only do this when not done yet for this buffer
+if (exists("b:did_ftplugin"))
+  finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+setlocal tabstop=4 shiftwidth=4 expandtab fileencoding=utf-8
+setlocal suffixesadd=.fal
+
+" Matchit support
+if exists("loaded_matchit") && !exists("b:match_words")
+  let b:match_ignorecase = 0
+
+  let b:match_words =
+	\ '\<\%(if\|case\|while\|until\|for\|do\|class\)\>=\@!' .
+	\ ':' .
+	\ '\<\%(else\|elsif\|when\)\>' .
+	\ ':' .
+	\ '\<end\>' .
+	\ ',{:},\[:\],(:)'
+endif
+
+" Set comments to include dashed lines
+setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,://
+
+" Windows allows you to filter the open file dialog
+if has("gui_win32") && !exists("b:browsefilter")
+  let b:browsefilter = "Falcon Source Files (*.fal)\t*.fal\n" .
+                     \ "All Files (*.*)\t*.*\n"
+endif
+
+" vim: set sw=4 sts=4 et tw=80 :
diff --git a/runtime/indent/falcon.vim b/runtime/indent/falcon.vim
new file mode 100644
index 0000000..933eb61
--- /dev/null
+++ b/runtime/indent/falcon.vim
@@ -0,0 +1,156 @@
+" Vim indent file
+" Language: Falcon
+" Maintainer: Steven Oliver <oliver.steven@gmail.com>
+" Website: https://steveno@github.com/steveno/falconpl-vim.git
+" Credits: Thanks to the ruby.vim authors, I borrow a lot!
+" Previous Maintainer: Brent A. Fulgham <bfulgham@debian.org>
+" -----------------------------------------------------------
+" GetLatestVimScripts: 2752 1 :AutoInstall: falcon.vim
+
+"======================================
+"       SETUP
+"======================================
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+    finish
+endif
+let b:did_indent = 1
+
+setlocal nosmartindent
+
+" Setup indent function and when to use it
+setlocal indentexpr=FalconGetIndent()
+setlocal indentkeys=0{,0},0),0],!^F,o,O,e
+setlocal indentkeys+==~case,=~catch,=~default,=~elif,=~else,=~end,=~\"
+
+" Define the appropriate indent function but only once
+if exists("*FalconGetIndent")
+    finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+"======================================
+"       VARIABLES
+"======================================
+
+" Regex of syntax group names that are strings AND comments
+let s:syng_strcom = '\<falcon\%(String\|StringEscape\|Comment\)\>'
+
+" Regex of syntax group names that are strings
+let s:syng_string = '\<falcon\%(String\|StringEscape\)\>'
+
+" Keywords to indent on
+let s:falcon_indent_keywords = '^\s*\(case\|catch\|class\|enum\|default\|elif\|else' .
+    \ '\|for\|function\|if.*"[^"]*:.*"\|if \(\(:\)\@!.\)*$\|loop\|object\|select' .
+    \ '\|switch\|try\|while\|\w*\s*=\s*\w*([$\)'
+
+" Keywords to deindent on
+let s:falcon_deindent_keywords = '^\s*\(case\|catch\|default\|elif\|else\|end\)'
+
+"======================================
+"       FUNCTIONS
+"======================================
+
+" Check if the character at lnum:col is inside a string
+function s:IsInStringOrComment(lnum, col)
+    return synIDattr(synID(a:lnum, a:col, 1), 'name') =~ s:syng_strcom
+endfunction
+
+"======================================
+"       INDENT ROUTINE
+"======================================
+
+function FalconGetIndent()
+    " Get the line to be indented
+    let cline = getline(v:lnum)
+
+    " Don't reindent comments on first column
+    if cline =~ '^\/\/'
+        return 0
+    endif
+
+    " Find the previous non-blank line
+    let lnum = prevnonblank(v:lnum - 1)
+
+    " Use zero indent at the top of the file
+    if lnum == 0
+        return 0
+    endif
+
+    let prevline=getline(lnum)
+    let ind = indent(lnum)
+    let chg = 0
+
+    " If we are in a multi-line string or line-comment, don't do anything
+    if s:IsInStringOrComment(v:lnum, matchend(cline, '^\s*') + 1 )
+        return indent('.')
+    endif
+
+    " If the start of the line equals a double quote, then indent to the
+    " previous lines first double quote
+    if cline =~? '^\s*"'
+        let chg = chg + &sw
+    endif
+
+    " If previous line started with a double quote and this one
+    " doesn't, unindent
+    if prevline =~? '^\s*"' && cline =~? '^\s*'
+        let chg = chg - &sw
+    endif
+
+    " Indent if proper keyword
+    if prevline =~? s:falcon_indent_keywords
+        let chg = &sw
+    " If previous line opened a parenthesis, and did not close it, indent
+    elseif prevline =~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
+        " Make sure this isn't just a function split between two lines
+        if prevline =~ ',\s*$'
+            return indent(prevnonblank(v:lnum - 1)) + &sw
+        else
+            return match(prevline, '(.*\((.*)\|[^)]\)*.*$') + 1
+        endif
+    elseif prevline =~ '^[^(]*)\s*$'
+        " This line closes a parenthesis. Finds opening.
+        let curr_line = prevnonblank(lnum - 1)
+        while curr_line >= 0
+            let str = getline(curr_line)
+            if str !~ '^.*(\s*[^)]*\((.*)\)*[^)]*$'
+                let curr_line = prevnonblank(curr_line - 1)
+            else
+                break
+            endif
+        endwhile
+        if curr_line < 0
+            return -1
+        endif
+        let ind = indent(curr_line)
+    endif
+
+    " If previous line ends in a semi-colon reset indent to previous
+    " lines setting
+    if prevline =~? ';\s*$' && prevnonblank(prevline) =~? ',\s*$'
+        return chg = chg - (2 * &sw)
+    endif
+
+    " If previous line ended in a comma, indent again
+    if prevline =~? ',\s*$'
+        let chg = chg + &sw
+    endif
+
+    " If previous line ended in a =>, indent again
+    if prevline =~? '=>\s*$'
+        let chg = chg + &sw
+    endif
+
+    " Deindent on proper keywords
+    if cline =~? s:falcon_deindent_keywords
+        let chg = chg - &sw
+    endif
+
+    return ind + chg
+endfunction
+
+" vim: set sw=4 sts=4 et tw=80 :
diff --git a/runtime/scripts.vim b/runtime/scripts.vim
index e30b5c4..7527578 100644
--- a/runtime/scripts.vim
+++ b/runtime/scripts.vim
@@ -1,7 +1,7 @@
 " Vim support file to detect file types in scripts
 "
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last change:	2010 Jul 29
+" Last change:	2010 Sep 22
 
 " This file is called by an autocommand for every file that has just been
 " loaded into a buffer.  It checks if the type of file can be recognized by
@@ -168,7 +168,8 @@
     call SetFileTypeSH(s:line1)	" defined in filetype.vim
 
     " Z shell scripts
-  elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>'
+  elseif s:line1 =~ '^#compdef\>' || s:line1 =~ '^#autoload\>' ||
+        \ "\n".s:line1."\n".s:line2."\n".s:line3."\n".s:line4."\n".s:line5 =~ '\n\s*emulate\s\+\%(-[LR]\s\+\)\=[ckz]\=sh\>'
     set ft=zsh
 
   " ELM Mail files
diff --git a/runtime/syntax/d.vim b/runtime/syntax/d.vim
index e43487c..b7f5eba 100644
--- a/runtime/syntax/d.vim
+++ b/runtime/syntax/d.vim
@@ -2,8 +2,8 @@
 "
 " Language:     D
 " Maintainer:   Jesse Phillips <Jesse.K.Phillips+D@gmail.com>
-" Last Change:  2010 Sep 9
-" Version:      0.21
+" Last Change:  2010 Sep 21
+" Version:      0.22
 "
 " Contributors:
 "   - Jason Mills <jasonmills@nf.sympatico.ca>: original Maintainer
@@ -117,9 +117,9 @@
 syn match dAnnotation	"@[_$a-zA-Z][_$a-zA-Z0-9_]*\>" contains=dAttribute
 
 " Version Identifiers
-syn match dVersion	"version\s*([_a-zA-Z][_a-zA-Z0-9]*\>"he=s+7 contains=dVersionIdentifier
-syn match dVersion	"[^.]\s*\<version\>"
-syn match dVersion	"^\<version\>"
+syn match dVersion   "[^.]version" nextgroup=dVersionInside
+syn match dVersion   "^version" nextgroup=dVersionInside
+syn match dVersionInside  "([_a-zA-Z][_a-zA-Z0-9]*\>" transparent contained contains=dVersionIdentifier
 
 " Scope StorageClass
 syn match dStorageClass   "scope"
diff --git a/runtime/syntax/falcon.vim b/runtime/syntax/falcon.vim
new file mode 100644
index 0000000..0ff500c
--- /dev/null
+++ b/runtime/syntax/falcon.vim
@@ -0,0 +1,155 @@
+" Vim syntax file
+" Language:     Falcon
+" Maintainer:   Steven Oliver <oliver.steven@gmail.com>
+" Website:      http://github.com/steveno/vim-files/blob/master/syntax/falcon.vim
+" Credits:      Thanks the ruby.vim authors, I borrowed a lot!
+" -------------------------------------------------------------------------------
+" GetLatestVimScripts: 2745 1 :AutoInstall: falcon.vim
+
+" When wanted, highlight the trailing whitespace.
+if exists("c_space_errors")
+    if !exists("c_no_trail_space_error")
+        syn match falconSpaceError "\s\+$"
+    endif
+
+    if !exists("c_no_tab_space_error")
+        syn match falconSpaceError " \+\t"me=e-1
+    endif
+endif
+
+" Symbols
+syn match falconSymbol "\(;\|,\|\.\)"
+syn match falconSymbolOther "\(#\|@\)" display
+
+" Operators
+syn match falconOperator "\(+\|-\|\*\|/\|=\|<\|>\|\*\*\|!=\|\~=\)"
+syn match falconOperator "\(<=\|>=\|=>\|\.\.\|<<\|>>\|\"\)"
+
+" Clusters
+syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=@falconStringSpecial fold
+syn case match
+
+" Keywords
+syn keyword falconKeyword all allp any anyp as attributes brigade cascade catch choice class const
+syn keyword falconKeyword continue def directive do list dropping enum eq eval exit export from function
+syn keyword falconKeyword give global has hasnt in init innerfunc lambda launch launch len List list
+syn keyword falconKeyword load notin object pass print printl provides raise return self sender static to
+syn keyword falconKeyword try xamp
+
+" Error Type Keywords
+syn keyword falconKeyword CloneError CodeError Error InterruprtedError IoError MathError
+syn keyword falconKeyword ParamError RangeError SyntaxError TraceStep TypeError
+
+" Todo
+syn keyword falconTodo DEBUG FIXME NOTE TODO XXX
+
+" Conditionals
+syn keyword falconConditional and case default else end if iff
+syn keyword falconConditional elif or not switch select
+syn match   falconConditional "end\s\if"
+
+" Loops
+syn keyword falconRepeat break for loop forfirst forlast formiddle while
+
+" Booleans
+syn keyword falconBool true false
+
+" Constants
+syn keyword falconConst PI E nil
+
+" Comments
+syn match falconCommentSkip contained "^\s*\*\($\|\s\+\)"
+syn region falconComment start="/\*" end="\*/" contains=@falconCommentGroup,falconSpaceError,falconTodo
+syn region falconCommentL start="//" end="$" keepend contains=@falconCommentGroup,falconSpaceError,falconTodo
+syn match falconSharpBang "\%^#!.*" display
+syn sync ccomment falconComment
+
+" Numbers
+syn match falconNumbers transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
+syn match falconNumbersCom contained transparent "\<[+-]\=\d\|[+-]\=\.\d" contains=falconIntLiteral,falconFloatLiteral,falconHexadecimal,falconOctal
+syn match falconHexadecimal contained "\<0x\x\+\>"
+syn match falconOctal contained "\<0\o\+\>"
+syn match falconIntLiteral contained "[+-]\<d\+\(\d\+\)\?\>"
+syn match falconFloatLiteral contained "[+-]\=\d\+\.\d*"
+syn match falconFloatLiteral contained "[+-]\=\d*\.\d*"
+
+" Includes
+syn keyword falconInclude load import
+
+" Expression Substitution and Backslash Notation
+syn match falconStringEscape "\\\\\|\\[abefnrstv]\|\\\o\{1,3}\|\\x\x\{1,2}" contained display
+syn match falconStringEscape "\%(\\M-\\C-\|\\C-\\M-\|\\M-\\c\|\\c\\M-\|\\c\|\\C-\|\\M-\)\%(\\\o\{1,3}\|\\x\x\{1,2}\|\\\=\S\)" contained display
+syn region falconSymbol start="[]})\"':]\@<!:\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
+
+" Normal String and Shell Command Output
+syn region falconString matchgroup=falconStringDelimiter start="\"" end="\"" skip="\\\\\|\\\"" contains=falconStringEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="'" end="'" skip="\\\\\|\\'" fold
+syn region falconString matchgroup=falconStringDelimiter start="`" end="`" skip="\\\\\|\\`" contains=falconStringEscape fold
+
+" Generalized Single Quoted String, Symbol and Array of Strings
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)"  end="\z1" skip="\\\\\|\\\z1" fold
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
+syn region falconString matchgroup=falconStringDelimiter start="%[qw]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
+syn region falconString matchgroup=falconStringDelimiter start="%[qw](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" fold
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]{" end="}" skip="\\\\\|\\}" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]<" end=">" skip="\\\\\|\\>" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s]\[" end="\]" skip="\\\\\|\\\]" fold contains=falconDelimEscape
+syn region falconSymbol matchgroup=falconSymbolDelimiter start="%[s](" end=")" skip="\\\\\|\\)" fold contains=falconDelimEscape
+
+" Generalized Double Quoted String and Array of Strings and Shell Command Output
+syn region falconString matchgroup=falconStringDelimiter start="%\z([~`!@#$%^&*_\-+|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\z([~`!@#$%^&*_\-+=|\:;"',.?/]\)" end="\z1" skip="\\\\\|\\\z1" contains=falconStringEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\={" end="}" skip="\\\\\|\\}" contains=falconStringEscape,falconDelimEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=<" end=">" skip="\\\\\|\\>" contains=falconStringEscape,falconDelimEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=\[" end="\]" skip="\\\\\|\\\]" contains=falconStringEscape,falconDelimEscape fold
+syn region falconString matchgroup=falconStringDelimiter start="%[QWx]\=(" end=")" skip="\\\\\|\\)" contains=falconStringEscape,falconDelimEscape fold
+
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<\z(\h\w*\)\ze+hs=s+2 matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<"\z([^"]*\)"\ze+hs=s+2  matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<'\z([^']*\)'\ze+hs=s+2  matchgroup=falconStringDelimiter end=+^\z1$+ fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]})"'.]\|::\)\)\_s*\|\w\)\@<!<<`\z([^`]*\)`\ze+hs=s+2  matchgroup=falconStringDelimiter end=+^\z1$+ contains=falconStringEscape fold keepend
+
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-\z(\h\w*\)\ze+hs=s+3 matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-"\z([^"]*\)"\ze+hs=s+3  matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-'\z([^']*\)'\ze+hs=s+3  matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ fold keepend
+syn region falconString start=+\%(\%(class\s*\|\%([]}).]\|::\)\)\_s*\|\w\)\@<!<<-`\z([^`]*\)`\ze+hs=s+3  matchgroup=falconStringDelimiter end=+^\s*\zs\z1$+ contains=falconStringEscape fold keepend
+
+" Syntax Synchronizing
+syn sync minlines=10 maxlines=100
+
+" Define the default highlighting
+if !exists("did_falcon_syn_inits")
+    command -nargs=+ HiLink hi def link <args>
+
+    HiLink falconKeyword          Keyword
+    HiLink falconCommentString    String
+    HiLink falconTodo             Todo
+    HiLink falconConditional      Keyword
+    HiLink falconRepeat           Repeat
+    HiLink falconcommentSkip      Comment
+    HiLink falconComment          Comment
+    HiLink falconCommentL         Comment
+    HiLink falconConst            Constant
+    HiLink falconOperator         Operator
+    HiLink falconSymbol           Normal
+    HiLink falconSpaceError       Error
+    HiLink falconHexadecimal      Number
+    HiLink falconOctal            Number
+    HiLink falconIntLiteral       Number
+    HiLink falconFloatLiteral     Float
+    HiLink falconStringEscape     Special
+    HiLink falconStringDelimiter  Delimiter
+    HiLink falconString           String
+    HiLink falconBool             Constant
+    HiLink falconSharpBang        PreProc
+    HiLink falconInclude          Include
+    HiLink falconSymbol           Constant
+    HiLink falconSymbolOther      Delimiter
+    delcommand HiLink
+endif
+
+let b:current_syntax = "falcon"
+
+" vim: set sw=4 sts=4 et tw=80 :
diff --git a/runtime/syntax/nasm.vim b/runtime/syntax/nasm.vim
index 6bbf33a..50cbe1c 100644
--- a/runtime/syntax/nasm.vim
+++ b/runtime/syntax/nasm.vim
@@ -1,9 +1,10 @@
 " Vim syntax file
 " Language:	NASM - The Netwide Assembler (v0.98)
-" Maintainer:	Manuel M.H. Stol	<mmh.stol@gmx.net>
-" Last Change:	2003 May 11
-" Vim URL:	http://www.vim.org/lang.html
-" NASM Home:	http://www.cryogen.com/Nasm/
+" Maintainer:	Andriy Sokolov	<andriy145@gmail.com>
+" Original Author:	Manuel M.H. Stol	<Manuel.Stol@allieddata.nl>
+" Former Maintainer:	Manuel M.H. Stol	<Manuel.Stol@allieddata.nl>
+" Last Change:	2010 Sep 24
+" NASM Home:	http://www.nasm.us/
 
 
 
@@ -160,6 +161,7 @@
 "syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro
 "syn region  nasmInMacStrucDef	contained transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure
 syn region  nasmInMacPreConDef	contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreCondit
+" Todo: allow STRUC/ISTRUC to be used inside preprocessor conditional block
 syn match   nasmInMacPreCondit	contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx
 syn match   nasmInMacPreCondit	contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx
 syn match   nasmInMacPreCondit	contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx
@@ -210,15 +212,17 @@
 syn cluster nasmGrpPreCondits	contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel
 
 "  Other pre-processor statements
-syn match   nasmPreProc		"^\s*%rep\>"hs=e-3
+syn match   nasmPreProc		"^\s*%\(rep\|use\)\>"hs=e-3
 syn match   nasmPreProc		"^\s*%line\>"hs=e-4
-syn match   nasmPreProc		"^\s*%\(clear\|error\)\>"hs=e-5
-syn match   nasmPreProc		"^\s*%endrep\>"hs=e-6
-syn match   nasmPreProc		"^\s*%exitrep\>"hs=e-7
+syn match   nasmPreProc		"^\s*%\(clear\|error\|fatal\)\>"hs=e-5
+syn match   nasmPreProc		"^\s*%\(endrep\|strlen\|substr\)\>"hs=e-6
+syn match   nasmPreProc		"^\s*%\(exitrep\|warning\)\>"hs=e-7
 syn match   nasmDefine		"^\s*%undef\>"hs=e-5
 syn match   nasmDefine		"^\s*%\(assign\|define\)\>"hs=e-6
 syn match   nasmDefine		"^\s*%i\(assign\|define\)\>"hs=e-7
+syn match   nasmDefine		"^\s*%unmacro\>"hs=e-7
 syn match   nasmInclude		"^\s*%include\>"hs=e-7
+" Todo: Treat the line tail after %fatal, %error, %warning as text
 
 "  Multiple pre-processor instructions on single line detection (obsolete)
 "syn match   nasmPreProcError	+^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+
@@ -231,6 +235,7 @@
 syn match   nasmGen08Register	"\<[A-D][HL]\>"
 syn match   nasmGen16Register	"\<\([A-D]X\|[DS]I\|[BS]P\)\>"
 syn match   nasmGen32Register	"\<E\([A-D]X\|[DS]I\|[BS]P\)\>"
+syn match   nasmGen64Register	"\<R\([A-D]X\|[DS]I\|[BS]P\|[89]\|1[0-5]\|[89][WD]\|1[0-5][WD]\)\>"
 syn match   nasmSegRegister	"\<[C-GS]S\>"
 syn match   nasmSpcRegister	"\<E\=IP\>"
 syn match   nasmFpuRegister	"\<ST\o\>"
@@ -298,20 +303,21 @@
 syn match   nasmStdInstruction	"\<POP\>"
 syn keyword nasmStdInstruction	AAA AAD AAM AAS ADC ADD AND
 syn keyword nasmStdInstruction	BOUND BSF BSR BSWAP BT[C] BTR BTS
-syn keyword nasmStdInstruction	CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW
-syn keyword nasmStdInstruction	CMPXCHG CMPXCHG8B CPUID CWD[E]
+syn keyword nasmStdInstruction	CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ
+syn keyword nasmStdInstruction	CMPXCHG CMPXCHG8B CPUID CWD[E] CQO
 syn keyword nasmStdInstruction	DAA DAS DEC DIV ENTER
-syn keyword nasmStdInstruction	IDIV IMUL INC INT[O] IRET[D] IRETW
+syn keyword nasmStdInstruction	IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ
 syn keyword nasmStdInstruction	JCXZ JECXZ JMP
-syn keyword nasmStdInstruction	LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD
+syn keyword nasmStdInstruction	LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ
 syn keyword nasmStdInstruction	LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS
-syn keyword nasmStdInstruction	MOVSB MOVSD MOVSW MOVSX MOVZX MUL NEG NOP NOT
-syn keyword nasmStdInstruction	OR POPA[D] POPAW POPF[D] POPFW
-syn keyword nasmStdInstruction	PUSH[AD] PUSHAW PUSHF[D] PUSHFW
+syn keyword nasmStdInstruction	MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT
+syn keyword nasmStdInstruction	OR POPA[D] POPAW POPF[D] POPFW POPFQ
+syn keyword nasmStdInstruction	PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ
 syn keyword nasmStdInstruction	RCL RCR RETF RET[N] ROL ROR
 syn keyword nasmStdInstruction	SAHF SAL SAR SBB SCASB SCASD SCASW
-syn keyword nasmStdInstruction	SHL[D] SHR[D] STC STD STOSB STOSD STOSW SUB
+syn keyword nasmStdInstruction	SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB
 syn keyword nasmStdInstruction	TEST XADD XCHG XLATB XOR
+syn keyword nasmStdInstruction	LFENCE MFENCE SFENCE
 
 
 " System Instructions: (usually privileged)
