updated for version 7.3.423
Problem:    Small mistakes in comments, proto and indent.
Solution:   Fix the mistakes.

Also update runtime files
diff --git a/runtime/syntax/awk.vim b/runtime/syntax/awk.vim
index 8c1f182..6f1f561 100644
--- a/runtime/syntax/awk.vim
+++ b/runtime/syntax/awk.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	awk, nawk, gawk, mawk
-" Maintainer:	Antonio Colombo <azc10@yahoo.com>
-" Last Change:	2005 Mar 16
+" Maintainer:	Antonio Colombo <azc100@gmail.com>
+" Last Change:	2012 Jan 31
 
 " AWK  ref.  is: Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger
 " The AWK Programming Language, Addison-Wesley, 1988
@@ -25,6 +25,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " A bunch of useful Awk keywords
 " AWK  ref. p. 188
 syn keyword awkStatement	break continue delete exit
@@ -213,4 +216,7 @@
 
 let b:current_syntax = "awk"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: ts=8
diff --git a/runtime/syntax/logtalk.vim b/runtime/syntax/logtalk.vim
index 7d90cd8..be34c7e 100644
--- a/runtime/syntax/logtalk.vim
+++ b/runtime/syntax/logtalk.vim
@@ -2,7 +2,7 @@
 "
 " Language:	Logtalk
 " Maintainer:	Paulo Moura <pmoura@logtalk.org>
-" Last Change:	Oct 31, 2008
+" Last Change:	February 4, 2012
 
 
 " Quit when a syntax file was already loaded:
@@ -13,6 +13,8 @@
 	finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
 
 " Logtalk is case sensitive:
 
@@ -75,8 +77,13 @@
 
 " Logtalk directives
 
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- if("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- elif("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn match	logtalkDirTag		":- else\."
+syn match	logtalkDirTag		":- endif\."
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- alias("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- calls("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- coinductive("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- encoding("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- initialization("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- info("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
@@ -89,17 +96,27 @@
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- protected("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- private("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_predicate("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- meta_non_terminal("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- op("			matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_logtalk_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- synchronized("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn match	logtalkDirTag		":- synchronized\."
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- uses("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn match	logtalkDirTag		":- threaded\."
 
 
+" Prolog directives
+
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- ensure_loaded("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- include("     	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- set_prolog_flag("	matchgroup=logtalkDirTag	end=")\."	contains=ALL
+
+
 " Module directives
 
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- export("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
+syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- reexport("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 syn region	logtalkDir		matchgroup=logtalkDirTag	start=":- use_module("		matchgroup=logtalkDirTag	end=")\."	contains=ALL
 
 
@@ -109,7 +126,7 @@
 
 syn match	logtalkBuiltIn		"\<\(object\|protocol\|category\)_property\ze("
 
-syn match	logtalkBuiltIn		"\<complements_object\ze("
+syn match	logtalkBuiltIn		"\<co\(mplements_object\|nforms_to_protocol\)\ze("
 syn match	logtalkBuiltIn		"\<extends_\(object\|protocol\|category\)\ze("
 syn match	logtalkBuiltIn		"\<imp\(orts_category\|lements_protocol\)\ze("
 syn match	logtalkBuiltIn		"\<\(instantiat\|specializ\)es_class\ze("
@@ -119,7 +136,7 @@
 
 syn match	logtalkBuiltIn		"\<\(curren\|se\)t_logtalk_flag\ze("
 
-syn match	logtalkBuiltIn		"\<logtalk_\(compile\|l\(ibrary_path\|oad\)\)\ze("
+syn match	logtalkBuiltIn		"\<logtalk_\(compile\|l\(ibrary_path\|oad\|oad_context\)\)\ze("
 
 syn match	logtalkBuiltIn		"\<\(for\|retract\)all\ze("
 
@@ -145,7 +162,7 @@
 syn match	logtalkBuiltInMethod	"\<before\ze("
 syn match	logtalkBuiltInMethod	"\<after\ze("
 
-syn match	logtalkBuiltInMethod	"\<expand_term\ze("
+syn match	logtalkBuiltInMethod	"\<expand_\(goal\|term\)\ze("
 syn match	logtalkBuiltInMethod	"\<\(goal\|term\)_expansion\ze("
 syn match	logtalkBuiltInMethod	"\<phrase\ze("
 
@@ -182,12 +199,14 @@
 syn match	logtalkKeyword		"\<atom\(ic\)\?\ze("
 syn match	logtalkKeyword		"\<integer\ze("
 syn match	logtalkKeyword		"\<float\ze("
-syn match	logtalkKeyword		"\<compound\ze("
+syn match	logtalkKeyword		"\<c\(allable\|ompound\)\ze("
 syn match	logtalkKeyword		"\<n\(onvar\|umber\)\ze("
+syn match	logtalkKeyword		"\<ground\ze("
 
 
 " Term comparison
 
+syn match	logtalkKeyword		"\<compare\ze("
 syn match	logtalkOperator		"@=<"
 syn match	logtalkOperator		"=="
 syn match	logtalkOperator		"\\=="
@@ -202,6 +221,7 @@
 syn match	logtalkKeyword		"\<arg\ze("
 syn match	logtalkOperator		"=\.\."
 syn match	logtalkKeyword		"\<copy_term\ze("
+syn match	logtalkKeyword		"\<numbervars\ze("
 
 
 " Arithemtic evaluation
@@ -250,6 +270,7 @@
 " Logic and control
 
 syn match	logtalkOperator		"\\+"
+syn match	logtalkKeyword		"\<ignore\ze("
 syn match	logtalkKeyword		"\<once\ze("
 syn match	logtalkKeyword		"\<repeat\>"
 
@@ -269,6 +290,11 @@
 syn match	logtalkKeyword		"\<halt\>"
 
 
+" Sorting
+
+syn match	logtalkKeyword		"\<\(key\)\?sort\ze("
+
+
 " Evaluable functors
 
 syn match	logtalkOperator		"+"
@@ -277,6 +303,8 @@
 syn match	logtalkOperator		"//"
 syn match	logtalkOperator		"/"
 syn match	logtalkKeyword		"\<r\(ound\|em\)\ze("
+syn match	logtalkKeyword		"\<e\>"
+syn match	logtalkKeyword		"\<pi\>"
 syn match	logtalkKeyword		"\<rem\>"
 syn match	logtalkKeyword		"\<mod\ze("
 syn match	logtalkKeyword		"\<mod\>"
@@ -311,7 +339,12 @@
 syn match	logtalkOperator		"|"
 
 
-" Logtalk numbers
+" Logtalk existential quantifier operator
+
+syn match	logtalkOperator		"\^"
+
+
+" Logtalk numbers 
 
 syn match	logtalkNumber		"\<\d\+\>"
 syn match	logtalkNumber		"\<\d\+\.\d\+\>"
@@ -333,6 +366,17 @@
 syn region	logtalkBlockComment	start="/\*"	end="\*/"	fold
 syn match	logtalkLineComment	"%.*"
 
+syn cluster	logtalkComment		contains=logtalkBlockComment,logtalkLineComment
+
+
+" Logtalk conditional compilation folding
+
+syn region logtalkIfContainer transparent keepend extend start=":- if(" end=":- endif\." containedin=ALLBUT,@logtalkComment contains=NONE
+syn region logtalkIf transparent fold keepend start=":- if(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
+syn region logtalkElseIf transparent fold keepend start=":- elif(" end=":- \(else\.\|elif(\)"ms=s-1,me=s-1 contained containedin=logtalkIfContainer nextgroup=logtalkElseIf,logtalkElse contains=TOP
+syn region logtalkElse transparent fold keepend start=":- else\." end=":- endif\." contained containedin=logtalkIfContainer contains=TOP
+
+
 
 " Logtalk entity folding
 
@@ -362,6 +406,11 @@
 	HiLink	logtalkOpenEntityDir	Normal
 	HiLink	logtalkOpenEntityDirTag	PreProc
 
+	HiLink	logtalkIfContainer	PreProc
+	HiLink	logtalkIf		PreProc
+	HiLink	logtalkElseIf		PreProc
+	HiLink	logtalkElse		PreProc
+
 	HiLink	logtalkEntity		Normal
 
 	HiLink	logtalkEntityRel	Normal
@@ -396,3 +445,6 @@
 
 
 let b:current_syntax = "logtalk"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/mail.vim b/runtime/syntax/mail.vim
index cf4a2c6..823c6b4 100644
--- a/runtime/syntax/mail.vim
+++ b/runtime/syntax/mail.vim
@@ -2,13 +2,16 @@
 " Language:		Mail file
 " Previous Maintainer:	Felix von Leitner <leitner@math.fu-berlin.de>
 " Maintainer:		GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
-" Last Change:		Sat 03 Dec 2011 10:34:27 PM EST
+" Last Change:		Thu 02 Feb 2012 08:47:04 PM EST
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " The mail header is recognized starting with a "keyword:" line and ending
 " with an empty line or other line that can't be in the header. All lines of
 " the header are highlighted. Headers of quoted messages (quoted with >) are
@@ -40,7 +43,7 @@
 syn region	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
 syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
 syn match	mailHeaderKey	contained contains=@NoSpell "\v(^(\> ?)*)@<=date:"
-syn match	mailSubject	contained contains=@NoSpell "\v^subject:.*$" fold
+syn match	mailSubject	contained "\v^subject:.*$" fold
 syn match	mailSubject	contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$"
 
 " Anything in the header between < and > is an email address
@@ -104,3 +107,6 @@
 hi def link mailQuoteExp6	mailQuoted6
 
 let b:current_syntax = "mail"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/masm.vim b/runtime/syntax/masm.vim
index 4ffd22b..1711601 100644
--- a/runtime/syntax/masm.vim
+++ b/runtime/syntax/masm.vim
@@ -2,8 +2,8 @@
 " Language:	Microsoft Macro Assembler (80x86)
 " Orig Author:	Rob Brady <robb@datatone.com>
 " Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
-" Last Change:	$Date: 2007/04/21 13:20:15 $
-" $Revision: 1.44 $
+" Last Change:	$Date: 2012/02/04 12:45:39 $
+" $Revision: 1.46 $
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -13,6 +13,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 
 
@@ -184,6 +187,12 @@
 syn keyword masmRegister	TR3 TR4 TR5 TR6 TR7
 syn match   masmRegister	"ST([0-7])"
 
+" x86-64 registers
+syn keyword masmRegister	RAX RBX RCX RDX RSI RDI RBP RSP
+syn keyword masmRegister	R8 R9 R10 R11 R12 R13 R14 R15
+syn keyword masmRegister	R8D R9D R10D R11D R12D R13D R14D R15D
+syn keyword masmRegister	R8W R9W R10W R11W R12W R13W R14W R15W
+syn keyword masmRegister	R8B R9B R10B R11B R12B R13B R14B R15B
 
 " Instruction prefixes
 syn keyword masmOpcode		LOCK REP REPE REPNE REPNZ REPZ
@@ -340,4 +349,7 @@
 
 let b:current_syntax = "masm"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: ts=8
diff --git a/runtime/syntax/mma.vim b/runtime/syntax/mma.vim
index f48dcce..c63beb1 100644
--- a/runtime/syntax/mma.vim
+++ b/runtime/syntax/mma.vim
@@ -1,12 +1,12 @@
 " Vim syntax file
 " Language:     Mathematica
 " Maintainer:   steve layland <layland@wolfram.com>
-" Last Change:  Thu May 19 21:36:04 CDT 2005
+" Last Change:  2012 Feb 03 by Thilo Six
 " Source:       http://members.wri.com/layland/vim/syntax/mma.vim
 "               http://vim.sourceforge.net/scripts/script.php?script_id=1273
 " Id:           $Id: mma.vim,v 1.4 2006/04/14 20:40:38 vimboss Exp $
 " NOTE:
-" 
+"
 " Empty .m files will automatically be presumed as Matlab files
 " unless you have the following in your .vimrc:
 "
@@ -14,7 +14,7 @@
 "
 " I also recommend setting the default 'Comment' hilighting to something
 " other than the color used for 'Function', since both are plentiful in
-" most mathematica files, and they are often the same color (when using 
+" most mathematica files, and they are often the same color (when using
 " background=dark).
 "
 " Credits:
@@ -24,11 +24,11 @@
 "    from the Java vim syntax file by Claudio Fleiner.  Thanks!
 " o  Everything else written by steve <layland@wolfram.com>
 "
-" Bugs: 
-" o  Vim 6.1 didn't really have support for character classes 
+" Bugs:
+" o  Vim 6.1 didn't really have support for character classes
 "    of other named character classes.  For example, [\a\d]
 "    didn't work.  Therefore, a lot of this code uses explicit
-"    character classes instead: [0-9a-zA-Z] 
+"    character classes instead: [0-9a-zA-Z]
 "
 " TODO:
 "   folding
@@ -41,6 +41,9 @@
     finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Group Definitions:
 syntax cluster mmaNotes contains=mmaTodo,mmaFixme
 syntax cluster mmaComments contains=mmaComment,mmaFunctionComment,mmaItem,mmaFunctionTitle,mmaCommentStar
@@ -58,7 +61,7 @@
 syntax keyword mmaVariable True False None Automatic All Null C General
 
 " mathematical constants:
-syntax keyword mmaVariable Pi I E Infinity ComplexInfinity Indeterminate GoldenRatio EulerGamma Degree Catalan Khinchin Glaisher 
+syntax keyword mmaVariable Pi I E Infinity ComplexInfinity Indeterminate GoldenRatio EulerGamma Degree Catalan Khinchin Glaisher
 
 " stream data / atomic heads:
 syntax keyword mmaVariable Byte Character Expression Number Real String Word EndOfFile Integer Symbol
@@ -80,7 +83,7 @@
 syntax keyword mmaVariable Black Blue Brown Cyan Gray Green Magenta Orange Pink Purple Red White Yellow
 
 " function attributes
-syntax keyword mmaVariable Protected Listable OneIdentity Orderless Flat Constant NumericFunction Locked ReadProtected HoldFirst HoldRest HoldAll HoldAllComplete SequenceHold NHoldFirst NHoldRest NHoldAll Temporary Stub 
+syntax keyword mmaVariable Protected Listable OneIdentity Orderless Flat Constant NumericFunction Locked ReadProtected HoldFirst HoldRest HoldAll HoldAllComplete SequenceHold NHoldFirst NHoldRest NHoldAll Temporary Stub
 
 " Comment Sections:
 "   this:
@@ -135,25 +138,25 @@
 
 " Patterns:
 "   Each pattern marker below can be Blank[] (_), BlankSequence[] (__)
-"   or BlankNullSequence[] (___).  Most examples below can also be 
+"   or BlankNullSequence[] (___).  Most examples below can also be
 "   combined, for example Pattern tests with Default values.
-"   
+"
 "   _Head                   Anonymous patterns
-"   name_Head 
+"   name_Head
 "   name:(_Head|_Head2)     Named patterns
-"    
+"
 "   _Head : val
 "   name:_Head:val          Default values
 "
-"   _Head?testQ, 
+"   _Head?testQ,
 "   _Head?(test[#]&)        Pattern tests
 "
 "   name_Head/;test[name]   Conditionals
-"   
+"
 "   _Head:.                 Predefined Default
 "
 "   .. ...                  Pattern Repeat
-   
+
 syntax match mmaPatternError "\%(_\{4,}\|)\s*&\s*)\@!\)" contained
 
 "pattern name:
@@ -172,7 +175,7 @@
 "   >= <= < >
 "   += -= *=
 "   /= ++ --    Math
-"   ^* 
+"   ^*
 "   -> :>       Rules
 "   @@ @@@      Apply
 "   /@ //@      Map
@@ -200,7 +203,7 @@
 syntax match mmaPureFunction "&"
 
 " Named Functions:
-" Since everything is pretty much a function, get this straight 
+" Since everything is pretty much a function, get this straight
 " from context
 syntax match mmaGenericFunction "[A-Za-z0-9`]\+\s*\%([@[]\|/:\|/\=/@\)\@=" contains=mmaOperator
 syntax match mmaGenericFunction "\~\s*[^~]\+\s*\~"hs=s+1,he=e-1 contains=mmaOperator,mmaBoring
@@ -223,7 +226,7 @@
 syntax match mmaError "\%([/]{3,}\|[&:|+*?~-]\{3,}\|[.=]\{4,}\|_\@<=\.\{2,}\|`\{2,}\)" containedin=ALLBUT,@mmaComments,@mmaStrings
 
 " Punctuation:
-" things that shouldn't really be highlighted, or highlighted 
+" things that shouldn't really be highlighted, or highlighted
 " in they're own group if you _really_ want. :)
 "  ( ) { }
 " TODO - use Delimiter group?
@@ -251,9 +254,9 @@
 
 "function MmaFoldText()
 "    let line = getline(v:foldstart)
-"    
+"
 "    let lines = v:foldend-v:foldstart+1
-"    
+"
 "    let sub = substitute(line, '(\*\+|\*\+)|[-*_]\+', '', 'g')
 "
 "    if match(line, '(\*') != -1
@@ -264,7 +267,7 @@
 "
 "    return v:folddashes.' '.lines.' '.sub
 "endf
-    
+
 "this is slow for computing folds, but it does so accurately
 syntax sync fromstart
 
@@ -288,8 +291,8 @@
 		command -nargs=+ HiLink hi def link <args>
 	endif
 
-    " NOTE - the following links are not guaranteed to 
-    " look good under all colorschemes.  You might need to 
+    " NOTE - the following links are not guaranteed to
+    " look good under all colorschemes.  You might need to
     " :so $VIMRUNTIME/syntax/hitest.vim and tweak these to
     " look good in yours
 
@@ -323,3 +326,6 @@
 endif
 
 let b:current_syntax = "mma"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/monk.vim b/runtime/syntax/monk.vim
index 560b79c..afe2b56 100644
--- a/runtime/syntax/monk.vim
+++ b/runtime/syntax/monk.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: Monk (See-Beyond Technologies)
 " Maintainer: Mike Litherland <litherm@ccf.org>
-" Last Change: March 6, 2002
+" Last Change: 2012 Feb 03 by Thilo Six
 
 " This syntax file is good enough for my needs, but others
 " may desire more features.  Suggestions and bug reports
@@ -29,6 +29,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 
 " Fascist highlighting: everything that doesn't fit the rules is an error...
@@ -226,3 +229,6 @@
 endif
 
 let b:current_syntax = "monk"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/mrxvtrc.vim b/runtime/syntax/mrxvtrc.vim
index 878021e..2ef434d 100644
--- a/runtime/syntax/mrxvtrc.vim
+++ b/runtime/syntax/mrxvtrc.vim
@@ -1,13 +1,16 @@
-" Created	: Wed 26 Apr 2006 01:20:53 AM CDT
-" Modified	: Mon 27 Aug 2007 12:10:37 PM PDT
-" Author	: Gautam Iyer <gi1242@users.sourceforge.net>
 " Description	: Vim syntax file for mrxvtrc (for mrxvt-0.5.0 and up)
+" Created	: Wed 26 Apr 2006 01:20:53 AM CDT
+" Modified	: Thu 02 Feb 2012 08:37:45 PM EST
+" Maintainer	: GI <a@b.c>, where a='gi1242+vim', b='gmail', c='com'
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case match
 
 " Errors
@@ -274,3 +277,6 @@
 hi def link mrxvtrcSubwin	mrxvtrcStrVal
 
 let b:current_syntax = "mrxvtrc"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/muttrc.vim b/runtime/syntax/muttrc.vim
index 0037f8f..abe9bfd 100644
--- a/runtime/syntax/muttrc.vim
+++ b/runtime/syntax/muttrc.vim
@@ -2,9 +2,9 @@
 " Language:	Mutt setup files
 " Original:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
 " Maintainer:	Kyle Wheeler <kyle-muttrc.vim@memoryhole.net>
-" Last Change:	9 Aug 2010
+" Last Change:	2 Feb 2012
 
-" This file covers mutt version 1.5.20 (and most of the mercurial tip)
+" This file covers mutt version 1.5.21 (and most of the mercurial tip)
 " Included are also a few features from 1.4.2.1
 
 " For version 5.x: Clear all syntax items
@@ -15,6 +15,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Set the keyword characters
 if version < 600
   set isk=@,48-57,_,-
@@ -22,6 +25,11 @@
   setlocal isk=@,48-57,_,-
 endif
 
+" handling optional variables
+if !exists("use_mutt_sidebar")
+  let use_mutt_sidebar=0
+endif
+
 syn match muttrcComment		"^# .*$" contains=@Spell
 syn match muttrcComment		"^#[^ ].*$"
 syn match muttrcComment		"^#$"
@@ -98,7 +106,7 @@
 syn region  muttrcKey		contained start=+'+ skip=+\\\\\|\\'+ end=+'+	contains=muttrcKeySpecial,muttrcKeyName
 syn match   muttrcKeyName	contained "\<f\%(\d\|10\)\>"
 syn match   muttrcKeyName	contained "\\[trne]"
-syn match   muttrcKeyName	contained "\c<\%(BackSpace\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
+syn match   muttrcKeyName	contained "\c<\%(BackSpace\|BackTab\|Delete\|Down\|End\|Enter\|Esc\|Home\|Insert\|Left\|PageDown\|PageUp\|Return\|Right\|Space\|Tab\|Up\)>"
 syn match   muttrcKeyName	contained "<F[0-9]\+>"
 
 syn keyword muttrcVarBool	skipwhite contained allow_8bit allow_ansi arrow_cursor ascii_chars askbcc askcc attach_split auto_tag autoedit beep beep_new nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -207,6 +215,9 @@
 syn keyword muttrcVarBool	skipwhite contained invthread_received invtilde invuncollapse_jump invuse_8bitmime nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarBool	skipwhite contained invuse_domain invuse_envelope_from invuse_from invuse_idn invuse_ipv6 nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarBool	skipwhite contained invuser_agent invwait_key invweed invwrap_search invwrite_bcc nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+if use_mutt_sidebar == 1
+    syn keyword muttrcVarBool skipwhite contained sidebar_visible sidebar_sort nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+endif
 
 syn keyword muttrcVarQuad	skipwhite contained abort_nosubject abort_unmodified bounce copy nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarQuad	skipwhite contained crypt_verify_sig delete fcc_attach forward_edit honor_followup_to nextgroup=muttrcSetQuadAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -232,6 +243,9 @@
 syn keyword muttrcVarNum	skipwhite contained score_threshold_flag score_threshold_read search_context sendmail_wait sleep_time nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarNum	skipwhite contained smime_timeout ssl_min_dh_prime_bits timeout time_inc wrap wrapmargin nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarNum	skipwhite contained write_inc nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+if use_mutt_sidebar == 1
+    syn keyword muttrcVarNum skipwhite contained sidebar_width nextgroup=muttrcSetNumAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+endif
 
 syn match muttrcFormatErrors contained /%./
 
@@ -372,6 +386,9 @@
 syn keyword muttrcVarStr	contained skipwhite smtp_url smtp_authenticators smtp_pass sort sort_alias sort_aux nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarStr	contained skipwhite sort_browser spam_separator spoolfile ssl_ca_certificates_file ssl_client_cert nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
 syn keyword muttrcVarStr	contained skipwhite status_chars tmpdir to_chars tunnel visual nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+if use_mutt_sidebar == 1
+    syn keyword muttrcVarStr skipwhite contained sidebar_delim nextgroup=muttrcSetStrAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
+endif
 
 " Present in 1.4.2.1 (pgp_create_traditional was a bool then)
 syn keyword muttrcVarBool	contained skipwhite imap_force_ssl noimap_force_ssl invimap_force_ssl nextgroup=muttrcSetBoolAssignment,muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -417,7 +434,10 @@
 syn keyword muttrcAlternateKeyword contained alternates unalternates
 syn region muttrcAlternatesLine keepend start=+^\s*\%(un\)\?alternates\s+ skip=+\\$+ end=+$+ contains=muttrcAlternateKeyword,muttrcGroupDef,muttrcRXPat,muttrcUnHighlightSpace,muttrcComment
 
-syn match muttrcVariable	contained "\\\@<!\$[a-zA-Z_-]\+"
+" muttrcVariable includes a prefix because partial strings are considered
+" valid.
+syn match muttrcVariable	contained "\\\@<![a-zA-Z_-]*\$[a-zA-Z_-]\+" contains=muttrcVariableInner
+syn match muttrcVariableInner	contained "\$[a-zA-Z_-]\+"
 syn match muttrcEscapedVariable	contained "\\\$[a-zA-Z_-]\+"
 
 syn match muttrcBadAction	contained "[^<>]\+" contains=muttrcEmail
@@ -450,6 +470,9 @@
 syn match muttrcFunction	contained "\<collapse-\%(parts\|thread\|all\)\>"
 syn match muttrcFunction	contained "\<view-\%(attach\|attachments\|file\|mailcap\|name\|text\)\>"
 syn match muttrcFunction	contained "\<\%(backspace\|backward-char\|bol\|bottom\|bottom-page\|buffy-cycle\|clear-flag\|complete\%(-query\)\?\|copy-file\|create-alias\|detach-file\|eol\|exit\|extract-keys\|\%(imap-\)\?fetch-mail\|forget-passphrase\|forward-char\|group-reply\|help\|ispell\|jump\|limit\|list-reply\|mail\|mail-key\|mark-as-new\|middle-page\|new-mime\|noop\|pgp-menu\|query\|query-append\|quit\|quote-char\|read-subthread\|redraw-screen\|refresh\|rename-file\|reply\|select-new\|set-flag\|shell-escape\|skip-quoted\|sort\|subscribe\|sync-mailbox\|top\|top-page\|transpose-chars\|unsubscribe\|untag-pattern\|verify-key\|what-key\|write-fcc\)\>"
+if use_mutt_sidebar == 1
+    syn match muttrcFunction    contained "\<sidebar-\%(prev\|next\|open\|scroll-up\|scroll-down\)"
+endif
 syn match muttrcAction		contained "<[^>]\{-}>" contains=muttrcBadAction,muttrcFunction,muttrcKeyName
 
 syn keyword muttrcCommand	set     skipwhite nextgroup=muttrcVPrefix,muttrcVarBool,muttrcVarQuad,muttrcVarNum,muttrcVarStr
@@ -523,7 +546,7 @@
 syn match muttrcSimplePat contained "!\?\^\?[~][dr]\s*\%(\%(-\?[0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)\|\%(\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)*\)-\%([0-9]\{1,2}\%(/[0-9]\{1,2}\%(/[0-9]\{2}\%([0-9]\{2}\)\?\)\?\)\?\%([+*-][0-9]\+[ymwd]\)\?\)\?\)\|\%([<>=][0-9]\+[ymwd]\)\|\%(`[^`]\+`\)\|\%(\$[a-zA-Z0-9_-]\+\)\)" contains=muttrcShellString,muttrcVariable
 syn match muttrcSimplePat contained "!\?\^\?[~][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatRXContainer
 syn match muttrcSimplePat contained "!\?\^\?[%][bBcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
-syn match muttrcSimplePat contained "!\?\^\?[=][bh]\s*" nextgroup=muttrcSimplePatString
+syn match muttrcSimplePat contained "!\?\^\?[=][bcCefhHiLstxy]\s*" nextgroup=muttrcSimplePatString
 syn region muttrcSimplePat contained keepend start=+!\?\^\?[~](+ end=+)+ contains=muttrcSimplePat
 "syn match muttrcSimplePat contained /'[^~=%][^']*/ contains=muttrcRXString
 syn region muttrcSimplePatString contained keepend start=+"+ end=+"+ skip=+\\"+
@@ -557,9 +580,12 @@
 syn region muttrcColorRXPat	contained start=+\s*"+ skip=+\\"+ end=+"\s*+ keepend skipwhite contains=muttrcRXString2 nextgroup=muttrcColorMatchCount,muttrcColorMatchCountNL
 syn keyword muttrcColorField	contained attachment body bold error hdrdefault header index indicator markers message normal quoted search signature status tilde tree underline
 syn match   muttrcColorField	contained "\<quoted\d\=\>"
+if use_mutt_sidebar == 1
+    syn keyword muttrcColorField contained sidebar_new
+endif
 syn keyword muttrcColor	contained black blue cyan default green magenta red white yellow
 syn keyword muttrcColor	contained brightblack brightblue brightcyan brightdefault brightgreen brightmagenta brightred brightwhite brightyellow
-syn match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,2}\>"
+syn match   muttrcColor	contained "\<\%(bright\)\=color\d\{1,3}\>"
 " Now for the structure of the color line
 syn match muttrcColorRXNL	contained skipnl "\s*\\$" nextgroup=muttrcColorRXPat,muttrcColorRXNL
 syn match muttrcColorBG 	contained /\s*[$]\?\w\+/ contains=muttrcColor,muttrcVariable,muttrcUnHighlightSpace nextgroup=muttrcColorRXPat,muttrcColorRXNL
@@ -641,7 +667,7 @@
   HiLink muttrcSetQuadAssignment	Boolean
   HiLink muttrcSetStrAssignment	String
   HiLink muttrcEmail		Special
-  HiLink muttrcVariable		Special
+  HiLink muttrcVariableInner	Special
   HiLink muttrcEscapedVariable	String
   HiLink muttrcHeader		Type
   HiLink muttrcKeySpecial	SpecialChar
@@ -765,4 +791,6 @@
 
 let b:current_syntax = "muttrc"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 "EOF	vim: ts=8 noet tw=100 sw=8 sts=0 ft=vim
diff --git a/runtime/syntax/nroff.vim b/runtime/syntax/nroff.vim
index 6f2a131..280ba9e 100644
--- a/runtime/syntax/nroff.vim
+++ b/runtime/syntax/nroff.vim
@@ -1,8 +1,8 @@
 " VIM syntax file
 " Language:	nroff/groff
-" Maintainer:	Alejandro López-Valencia <dradul@yahoo.com>
-" URL:		http://dradul.tripod.com/vim
-" Last Change:	2006 Apr 14
+" Maintainer:	Pedro Alejandro López-Valencia <palopezv@gmail.com>
+" URL:		http://vorbote.wordpress.com/
+" Last Change:	2012 Feb 2
 "
 " {{{1 Acknowledgements
 "
@@ -31,6 +31,9 @@
 	finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 "
 " {{{1 plugin settings...
 "
@@ -256,4 +259,6 @@
 
 let b:current_syntax = "nroff"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim600: set fdm=marker fdl=2:
diff --git a/runtime/syntax/opl.vim b/runtime/syntax/opl.vim
index aa3cb9e..1b07e35 100644
--- a/runtime/syntax/opl.vim
+++ b/runtime/syntax/opl.vim
@@ -1,6 +1,7 @@
 " Vim syntax file
 " Language:	OPL
 " Maintainer:	Czo <Olivier.Sirol@lip6.fr>
+" Last Change:	2012 Feb 03 by Thilo Six
 " $Id: opl.vim,v 1.1 2004/06/13 17:34:11 vimboss Exp $
 
 " Open Psion Language... (EPOC16/EPOC32)
@@ -13,6 +14,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " case is not significant
 syn case ignore
 
@@ -93,4 +97,6 @@
 
 let b:current_syntax = "opl"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
diff --git a/runtime/syntax/rpl.vim b/runtime/syntax/rpl.vim
index bc50475..6457803 100644
--- a/runtime/syntax/rpl.vim
+++ b/runtime/syntax/rpl.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	RPL/2
 " Version:	0.15.15 against RPL/2 version 4.00pre7i
-" Last Change:	2003 august 24
+" Last Change:	2012 Feb 03 by Thilo Six
 " Maintainer:	Joël BERTRAND <rpl2@free.fr>
 " URL:		http://www.makalis.fr/~bertrand/rpl2/download/vim/indent/rpl.vim
 " Credits:	Nothing
@@ -14,6 +14,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Keyword characters (not used)
 " set iskeyword=33-127
 
@@ -488,4 +491,6 @@
 
 let b:current_syntax = "rpl"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8 tw=132
diff --git a/runtime/syntax/sd.vim b/runtime/syntax/sd.vim
index bb201ca..7fa0e04 100644
--- a/runtime/syntax/sd.vim
+++ b/runtime/syntax/sd.vim
@@ -3,7 +3,7 @@
 " License: This file can be redistribued and/or modified under the same terms
 "   as Vim itself.
 " URL: http://netstudent.polito.it/vim_syntax/
-" Last Change: 2006-09-27
+" Last Change: 2012 Feb 03 by Thilo Six
 
 if version < 600
         syntax clear
@@ -11,6 +11,9 @@
         finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " Always ignore case
 syn case ignore
 
@@ -24,13 +27,13 @@
 syn match sdIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@sdIPCluster
 
 " Statements
-syn keyword sdStatement AGGREGATE AUDIO_CHANNELS 
+syn keyword sdStatement AGGREGATE AUDIO_CHANNELS
 syn keyword sdStatement BYTE_PER_PCKT BIT_PER_SAMPLE BITRATE
 syn keyword sdStatement CLOCK_RATE CODING_TYPE CREATOR
 syn match sdStatement /^\s*CODING_TYPE\>/ nextgroup=sdCoding skipwhite
 syn match sdStatement /^\s*ENCODING_NAME\>/ nextgroup=sdEncoding skipwhite
 syn keyword sdStatement FILE_NAME FRAME_LEN FRAME_RATE FORCE_FRAME_RATE
-syn keyword sdStatement LICENSE 
+syn keyword sdStatement LICENSE
 syn match sdStatement /^\s*MEDIA_SOURCE\>/ nextgroup=sdSource skipwhite
 syn match sdStatement /^\s*MULTICAST\>/ nextgroup=sdIP skipwhite
 syn keyword sdStatement PAYLOAD_TYPE PKT_LEN PRIORITY
@@ -73,3 +76,6 @@
 endif
 
 let b:current_syntax = "sd"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/sendpr.vim b/runtime/syntax/sendpr.vim
index 28a26e6..6cf9395 100644
--- a/runtime/syntax/sendpr.vim
+++ b/runtime/syntax/sendpr.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: FreeBSD send-pr file
 " Maintainer: Hendrik Scholz <hendrik@scholz.net>
-" Last Change: 2002 Mar 21
+" Last Change: 2012 Feb 03
 "
 " http://raisdorf.net/files/misc/send-pr.vim
 
@@ -13,6 +13,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn match sendprComment /^SEND-PR:/
 " email address
 syn match sendprType /<[a-zA-Z0-9\-\_\.]*@[a-zA-Z0-9\-\_\.]*>/
@@ -30,3 +33,6 @@
 hi def link sendprType      Type
 hi def link sendprString    String
 hi def link sendprLabel     Label
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/smil.vim b/runtime/syntax/smil.vim
index 0b53d8e..6b5a002 100644
--- a/runtime/syntax/smil.vim
+++ b/runtime/syntax/smil.vim
@@ -2,7 +2,7 @@
 " Language:	SMIL (Synchronized Multimedia Integration Language)
 " Maintainer:	Herve Foucher <Herve.Foucher@helio.org>
 " URL:		http://www.helio.org/vim/syntax/smil.vim
-" Last Change:	2003 May 11
+" Last Change:	2012 Feb 03 by Thilo Six
 
 " To learn more about SMIL, please refer to http://www.w3.org/AudioVideo/
 " and to http://www.helio.org/products/smil/tutorial/
@@ -15,6 +15,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " SMIL is case sensitive
 syn case match
 
@@ -151,4 +154,6 @@
   unlet main_syntax
 endif
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
diff --git a/runtime/syntax/snnspat.vim b/runtime/syntax/snnspat.vim
index 3c07fad..5bfa48e 100644
--- a/runtime/syntax/snnspat.vim
+++ b/runtime/syntax/snnspat.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	SNNS pattern file
 " Maintainer:	Davide Alberani <alberanid@bigfoot.com>
-" Last Change:	28 Apr 2001
+" Last Change:	2012 Feb 03 by Thilo Six
 " Version:	0.2
 " URL:		http://digilander.iol.it/alberanid/vim/syntax/snnspat.vim
 "
@@ -14,6 +14,8 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
 
 " anything that isn't part of the header, a comment or a number
 " is wrong
@@ -65,4 +67,6 @@
 
 let b:current_syntax = "snnspat"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8 sw=2
diff --git a/runtime/syntax/spup.vim b/runtime/syntax/spup.vim
index af57737..07e9708 100644
--- a/runtime/syntax/spup.vim
+++ b/runtime/syntax/spup.vim
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:     Speedup, plant simulator from AspenTech
 " Maintainer:   Stefan.Schwarzer <s.schwarzer@ndh.net>
-" URL:			http://www.ndh.net/home/sschwarzer/download/spup.vim
-" Last Change:  2003 May 11
+" URL:		http://www.ndh.net/home/sschwarzer/download/spup.vim
+" Last Change:  2012 Feb 03 by Thilo Six
 " Filename:     spup.vim
 
 " Bugs
@@ -25,6 +25,9 @@
     finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " don't hightlight several keywords like subsections
 "let strict_subsections = 1
 
@@ -43,7 +46,7 @@
 
 " Speedup SECTION regions
 syn case ignore
-syn region spupCdi		  matchgroup=spupSection start="^CDI"		 end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary
+syn region spupCdi	  matchgroup=spupSection start="^CDI"	     end="^\*\*\*\*" contains=spupCdiSubs,@spupOrdinary
 syn region spupConditions matchgroup=spupSection start="^CONDITIONS" end="^\*\*\*\*" contains=spupConditionsSubs,@spupOrdinary,spupConditional,spupOperator,spupCode
 syn region spupDeclare    matchgroup=spupSection start="^DECLARE"    end="^\*\*\*\*" contains=spupDeclareSubs,@spupOrdinary,spupTypes,spupCode
 syn region spupEstimation matchgroup=spupSection start="^ESTIMATION" end="^\*\*\*\*" contains=spupEstimationSubs,@spupOrdinary
@@ -63,7 +66,7 @@
 syn region spupUnit       matchgroup=spupSection start="^UNIT"       end="^\*\*\*\*" contains=spupUnitSubs,@spupOrdinary
 
 " Subsections
-syn keyword spupCdiSubs		   INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained
+syn keyword spupCdiSubs	       INPUT FREE OUTPUT LINEARTIME MINNONZERO CALCULATE FILES SCALING contained
 syn keyword spupDeclareSubs    TYPE STREAM contained
 syn keyword spupEstimationSubs ESTIMATE SSEXP DYNEXP RESULT contained
 syn keyword spupExternalSubs   TRANSMIT RECEIVE contained
@@ -183,7 +186,7 @@
 syn sync maxlines=500
 
 syn sync match spupSyncOperation  grouphere spupOperation  "^OPERATION"
-syn sync match spupSyncCdi		  grouphere spupCdi		   "^CDI"
+syn sync match spupSyncCdi	  grouphere spupCdi	   "^CDI"
 syn sync match spupSyncConditions grouphere spupConditions "^CONDITIONS"
 syn sync match spupSyncDeclare    grouphere spupDeclare    "^DECLARE"
 syn sync match spupSyncEstimation grouphere spupEstimation "^ESTIMATION"
@@ -207,71 +210,73 @@
 " For version 5.8 and later: only when an item doesn't have highlighting yet
 if version >= 508 || !exists("did_spup_syn_inits")
     if version < 508
-		let did_spup_syn_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
+	let did_spup_syn_inits = 1
+	command -nargs=+ HiLink hi link <args>
+    else
+	command -nargs=+ HiLink hi def link <args>
     endif
 
-	HiLink spupCdi			spupSection
-	HiLink spupConditions	spupSection
-	HiLink spupDeclare		spupSection
-	HiLink spupEstimation	spupSection
-	HiLink spupExternal		spupSection
-	HiLink spupFlowsheet	spupSection
-	HiLink spupFunction		spupSection
-	HiLink spupGlobal		spupSection
-	HiLink spupHomotopy		spupSection
-	HiLink spupMacro		spupSection
-	HiLink spupModel		spupSection
-	HiLink spupOperation	spupSection
-	HiLink spupOptions		spupSection
-	HiLink spupProcedure	spupSection
-	HiLink spupProfiles		spupSection
-	HiLink spupReport		spupSection
-	HiLink spupTitle		spupConstant  " this is correct, truly ;)
-	HiLink spupUnit			spupSection
+    HiLink spupCdi	    spupSection
+    HiLink spupConditions   spupSection
+    HiLink spupDeclare	    spupSection
+    HiLink spupEstimation   spupSection
+    HiLink spupExternal	    spupSection
+    HiLink spupFlowsheet    spupSection
+    HiLink spupFunction	    spupSection
+    HiLink spupGlobal	    spupSection
+    HiLink spupHomotopy	    spupSection
+    HiLink spupMacro	    spupSection
+    HiLink spupModel	    spupSection
+    HiLink spupOperation    spupSection
+    HiLink spupOptions	    spupSection
+    HiLink spupProcedure    spupSection
+    HiLink spupProfiles	    spupSection
+    HiLink spupReport	    spupSection
+    HiLink spupTitle	    spupConstant  " this is correct, truly ;)
+    HiLink spupUnit	    spupSection
 
-	HiLink spupCdiSubs		  spupSubs
-	HiLink spupConditionsSubs spupSubs
-	HiLink spupDeclareSubs	  spupSubs
-	HiLink spupEstimationSubs spupSubs
-	HiLink spupExternalSubs   spupSubs
-	HiLink spupFlowsheetSubs  spupSubs
-	HiLink spupFunctionSubs   spupSubs
-	HiLink spupHomotopySubs   spupSubs
-	HiLink spupMacroSubs	  spupSubs
-	HiLink spupModelSubs	  spupSubs
-	HiLink spupOperationSubs  spupSubs
-	HiLink spupOptionsSubs	  spupSubs
-	HiLink spupProcedureSubs  spupSubs
-	HiLink spupReportSubs	  spupSubs
-	HiLink spupUnitSubs		  spupSubs
+    HiLink spupCdiSubs	      spupSubs
+    HiLink spupConditionsSubs spupSubs
+    HiLink spupDeclareSubs    spupSubs
+    HiLink spupEstimationSubs spupSubs
+    HiLink spupExternalSubs   spupSubs
+    HiLink spupFlowsheetSubs  spupSubs
+    HiLink spupFunctionSubs   spupSubs
+    HiLink spupHomotopySubs   spupSubs
+    HiLink spupMacroSubs      spupSubs
+    HiLink spupModelSubs      spupSubs
+    HiLink spupOperationSubs  spupSubs
+    HiLink spupOptionsSubs    spupSubs
+    HiLink spupProcedureSubs  spupSubs
+    HiLink spupReportSubs     spupSubs
+    HiLink spupUnitSubs	      spupSubs
 
-	HiLink spupCode			   Normal
-	HiLink spupComment		   Comment
-	HiLink spupComment2		   spupComment
-	HiLink spupConditional	   Statement
-	HiLink spupConstant		   Constant
-	HiLink spupError		   Error
-	HiLink spupHelp			   Normal
-	HiLink spupIdentifier	   Identifier
-	HiLink spupNumber		   Constant
-	HiLink spupOperator		   Special
-	HiLink spupOpenBrace	   spupError
-	HiLink spupSection		   Statement
-	HiLink spupSpecial		   spupTextprocGeneric
-	HiLink spupStreams		   Type
-	HiLink spupString		   Constant
-	HiLink spupSubs			   Statement
-	HiLink spupSymbol		   Special
-	HiLink spupTextprocError   Normal
-	HiLink spupTextprocGeneric PreProc
-	HiLink spupTypes		   Type
+    HiLink spupCode	       Normal
+    HiLink spupComment	       Comment
+    HiLink spupComment2	       spupComment
+    HiLink spupConditional     Statement
+    HiLink spupConstant	       Constant
+    HiLink spupError	       Error
+    HiLink spupHelp	       Normal
+    HiLink spupIdentifier      Identifier
+    HiLink spupNumber	       Constant
+    HiLink spupOperator	       Special
+    HiLink spupOpenBrace       spupError
+    HiLink spupSection	       Statement
+    HiLink spupSpecial	       spupTextprocGeneric
+    HiLink spupStreams	       Type
+    HiLink spupString	       Constant
+    HiLink spupSubs	       Statement
+    HiLink spupSymbol	       Special
+    HiLink spupTextprocError   Normal
+    HiLink spupTextprocGeneric PreProc
+    HiLink spupTypes	       Type
 
     delcommand HiLink
 endif
 
 let b:current_syntax = "spup"
 
-" vim:ts=4
+let &cpo = s:cpo_save
+unlet s:cpo_save
+" vim:ts=8
diff --git a/runtime/syntax/sqlanywhere.vim b/runtime/syntax/sqlanywhere.vim
index 57ed158..b0f9321 100644
--- a/runtime/syntax/sqlanywhere.vim
+++ b/runtime/syntax/sqlanywhere.vim
@@ -1,10 +1,12 @@
+
 " Vim syntax file
 " Language:    SQL, Adaptive Server Anywhere
-" Maintainer:  David Fishburn <fishburn at ianywhere dot com>
-" Last Change: 2009 Mar 15
-" Version:     11.0.1
+" Maintainer:  David Fishburn <dfishburn dot vim at gmail dot com>
+" Last Change: 2012 Jan 23
+" Version:     12.0.1
 
-" Description: Updated to Adaptive Server Anywhere 11.0.1
+" Description: Updated to Adaptive Server Anywhere 12.0.1 (including spatial data)
+"              Updated to Adaptive Server Anywhere 11.0.1
 "              Updated to Adaptive Server Anywhere 10.0.1
 "              Updated to Adaptive Server Anywhere  9.0.2
 "              Updated to Adaptive Server Anywhere  9.0.1
@@ -67,6 +69,9 @@
 syn keyword sqlFunction	 connection_extended_property text_handle_vector_match
 syn keyword sqlFunction	 read_client_file write_client_file
 
+" 12.0.1 functions
+syn keyword sqlFunction	 http_response_header
+
 " string functions
 syn keyword sqlFunction	 ascii char left ltrim repeat
 syn keyword sqlFunction	 space right rtrim trim lcase ucase
@@ -358,7 +363,7 @@
 
 " http functions
 syn keyword sqlFunction	 http_header http_variable
-syn keyword sqlFunction	 next_http_header next_http_variable
+syn keyword sqlFunction	 next_http_header next_http_response_header next_http_variable
 syn keyword sqlFunction	 sa_set_http_header sa_set_http_option
 syn keyword sqlFunction	 sa_http_variable_info sa_http_header_info
 
@@ -366,114 +371,231 @@
 syn keyword sqlFunction	 http_encode http_decode
 syn keyword sqlFunction	 html_encode html_decode
 
+" XML function support
+syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
+syn keyword sqlFunction	 xmlattributes
+
+" Spatial Compatibility Functions
+syn keyword sqlFunction  ST_BdMPolyFromText
+syn keyword sqlFunction  ST_BdMPolyFromWKB
+syn keyword sqlFunction  ST_BdPolyFromText
+syn keyword sqlFunction  ST_BdPolyFromWKB
+syn keyword sqlFunction  ST_CPolyFromText
+syn keyword sqlFunction  ST_CPolyFromWKB
+syn keyword sqlFunction  ST_CircularFromTxt
+syn keyword sqlFunction  ST_CircularFromWKB
+syn keyword sqlFunction  ST_CompoundFromTxt
+syn keyword sqlFunction  ST_CompoundFromWKB
+syn keyword sqlFunction  ST_GeomCollFromTxt
+syn keyword sqlFunction  ST_GeomCollFromWKB
+syn keyword sqlFunction  ST_GeomFromText
+syn keyword sqlFunction  ST_GeomFromWKB
+syn keyword sqlFunction  ST_LineFromText
+syn keyword sqlFunction  ST_LineFromWKB
+syn keyword sqlFunction  ST_MCurveFromText
+syn keyword sqlFunction  ST_MCurveFromWKB
+syn keyword sqlFunction  ST_MLineFromText
+syn keyword sqlFunction  ST_MLineFromWKB
+syn keyword sqlFunction  ST_MPointFromText
+syn keyword sqlFunction  ST_MPointFromWKB
+syn keyword sqlFunction  ST_MPolyFromText
+syn keyword sqlFunction  ST_MPolyFromWKB
+syn keyword sqlFunction  ST_MSurfaceFromTxt
+syn keyword sqlFunction  ST_MSurfaceFromWKB
+syn keyword sqlFunction  ST_OrderingEquals
+syn keyword sqlFunction  ST_PointFromText
+syn keyword sqlFunction  ST_PointFromWKB
+syn keyword sqlFunction  ST_PolyFromText
+syn keyword sqlFunction  ST_PolyFromWKB
+" Spatial Structural Methods
+syn keyword sqlFunction  ST_CoordDim
+syn keyword sqlFunction  ST_CurveN
+syn keyword sqlFunction  ST_Dimension
+syn keyword sqlFunction  ST_EndPoint
+syn keyword sqlFunction  ST_ExteriorRing
+syn keyword sqlFunction  ST_GeometryN
+syn keyword sqlFunction  ST_GeometryType
+syn keyword sqlFunction  ST_InteriorRingN
+syn keyword sqlFunction  ST_Is3D
+syn keyword sqlFunction  ST_IsClosed
+syn keyword sqlFunction  ST_IsEmpty
+syn keyword sqlFunction  ST_IsMeasured
+syn keyword sqlFunction  ST_IsRing
+syn keyword sqlFunction  ST_IsSimple
+syn keyword sqlFunction  ST_IsValid
+syn keyword sqlFunction  ST_NumCurves
+syn keyword sqlFunction  ST_NumGeometries
+syn keyword sqlFunction  ST_NumInteriorRing
+syn keyword sqlFunction  ST_NumPoints
+syn keyword sqlFunction  ST_PointN
+syn keyword sqlFunction  ST_StartPoint
+"Spatial Computation
+syn keyword sqlFunction  ST_Length
+syn keyword sqlFunction  ST_Area
+syn keyword sqlFunction  ST_Centroid
+syn keyword sqlFunction  ST_Area
+syn keyword sqlFunction  ST_Centroid
+syn keyword sqlFunction  ST_IsWorld
+syn keyword sqlFunction  ST_Perimeter
+syn keyword sqlFunction  ST_PointOnSurface
+syn keyword sqlFunction  ST_Distance
+" Spatial Input/Output
+syn keyword sqlFunction  ST_AsBinary
+syn keyword sqlFunction  ST_AsGML
+syn keyword sqlFunction  ST_AsGeoJSON
+syn keyword sqlFunction  ST_AsSVG
+syn keyword sqlFunction  ST_AsSVGAggr
+syn keyword sqlFunction  ST_AsText
+syn keyword sqlFunction  ST_AsWKB
+syn keyword sqlFunction  ST_AsWKT
+syn keyword sqlFunction  ST_AsXML
+syn keyword sqlFunction  ST_GeomFromBinary
+syn keyword sqlFunction  ST_GeomFromShape
+syn keyword sqlFunction  ST_GeomFromText
+syn keyword sqlFunction  ST_GeomFromWKB
+syn keyword sqlFunction  ST_GeomFromWKT
+syn keyword sqlFunction  ST_GeomFromXML
+" Spatial Cast Methods
+syn keyword sqlFunction  ST_CurvePolyToPoly
+syn keyword sqlFunction  ST_CurveToLine
+syn keyword sqlFunction  ST_ToCircular
+syn keyword sqlFunction  ST_ToCompound
+syn keyword sqlFunction  ST_ToCurve
+syn keyword sqlFunction  ST_ToCurvePoly
+syn keyword sqlFunction  ST_ToGeomColl
+syn keyword sqlFunction  ST_ToLineString
+syn keyword sqlFunction  ST_ToMultiCurve
+syn keyword sqlFunction  ST_ToMultiLine
+syn keyword sqlFunction  ST_ToMultiPoint
+syn keyword sqlFunction  ST_ToMultiPolygon
+syn keyword sqlFunction  ST_ToMultiSurface
+syn keyword sqlFunction  ST_ToPoint
+syn keyword sqlFunction  ST_ToPolygon
+syn keyword sqlFunction  ST_ToSurface
+
+
 " keywords
-syn keyword sqlKeyword	 absolute accent action active add address aes_decrypt
-syn keyword sqlKeyword	 after aggregate algorithm allow_dup_row allowed
-syn keyword sqlKeyword	 alter and ansi_substring any as append apply asc ascii ase
-syn keyword sqlKeyword	 assign at atan2 atomic attach attended audit authorization
+syn keyword sqlKeyword	 absolute accent action active add address admin aes_decrypt
+syn keyword sqlKeyword	 after aggregate algorithm allow_dup_row allow allowed alter 
+syn keyword sqlKeyword	 and angular ansi_substring any as append apply 
+syn keyword sqlKeyword	 arbiter asc ascii ase
+syn keyword sqlKeyword	 assign at atan2 atomic attended 
+syn keyword sqlKeyword	 audit auditing authorization axis
 syn keyword sqlKeyword	 autoincrement autostop batch bcp before
 syn keyword sqlKeyword	 between bit_and bit_length bit_or bit_substr bit_xor
 syn keyword sqlKeyword	 blank blanks block
-syn keyword sqlKeyword	 both bottom unbounded break breaker bufferpool
+syn keyword sqlKeyword	 both bottom unbounded breaker bufferpool
 syn keyword sqlKeyword	 build bulk by byte bytes cache calibrate calibration
 syn keyword sqlKeyword	 cancel capability cascade cast
-syn keyword sqlKeyword	 catalog ceil changes char char_convert check checksum
+syn keyword sqlKeyword	 catalog ceil change changes char char_convert check checksum
 syn keyword sqlKeyword	 class classes client cmp
 syn keyword sqlKeyword	 cluster clustered collation
 syn keyword sqlKeyword	 column columns
-syn keyword sqlKeyword	 command comment committed comparisons
+syn keyword sqlKeyword	 command comments committed comparisons
 syn keyword sqlKeyword	 compatible component compressed compute computes
 syn keyword sqlKeyword	 concat configuration confirm conflict connection
 syn keyword sqlKeyword	 console consolidate consolidated
-syn keyword sqlKeyword	 constraint constraints content continue
-syn keyword sqlKeyword	 convert coordinator copy count count_set_bits
+syn keyword sqlKeyword	 constraint constraints content 
+syn keyword sqlKeyword	 convert coordinate coordinator copy count count_set_bits
 syn keyword sqlKeyword	 crc createtime cross cube cume_dist
 syn keyword sqlKeyword	 current cursor data data database
-syn keyword sqlKeyword	 current_timestamp current_user
+syn keyword sqlKeyword	 current_timestamp current_user cycle
 syn keyword sqlKeyword	 databases datatype dba dbfile
 syn keyword sqlKeyword	 dbspace dbspaces dbspacename debug decoupled
 syn keyword sqlKeyword	 decrypted default defaults default_dbspace deferred
 syn keyword sqlKeyword	 definer definition
 syn keyword sqlKeyword	 delay deleting delimited dependencies desc
-syn keyword sqlKeyword	 description detach deterministic directory
-syn keyword sqlKeyword	 disable disabled distinct do domain download duplicate
-syn keyword sqlKeyword	 dsetpass dttm dynamic each editproc ejb
+syn keyword sqlKeyword	 description deterministic directory
+syn keyword sqlKeyword	 disable disabled disallow distinct do domain download duplicate
+syn keyword sqlKeyword	 dsetpass dttm dynamic each earth editproc ejb
+syn keyword sqlKeyword	 elimination ellipsoid
 syn keyword sqlKeyword	 else elseif empty enable encapsulated encrypted end
 syn keyword sqlKeyword	 encoding endif engine environment erase error escape escapes event
-syn keyword sqlKeyword	 event_parameter every except exception exclude excluded exclusive exec
+syn keyword sqlKeyword	 event_parameter every exception exclude excluded exclusive exec
 syn keyword sqlKeyword	 existing exists expanded expiry express exprtype extended_property
 syn keyword sqlKeyword	 external externlogin factor failover false
-syn keyword sqlKeyword	 fastfirstrow fieldproc file files filler
-syn keyword sqlKeyword	 fillfactor finish first first_keyword first_value
+syn keyword sqlKeyword	 fastfirstrow feature fieldproc file files filler
+syn keyword sqlKeyword	 fillfactor final finish first first_keyword first_value
+syn keyword sqlKeyword	 flattening
 syn keyword sqlKeyword	 following force foreign format forxml forxml_sep fp frame
-syn keyword sqlKeyword	 freepage french fresh full function gb get_bit go global
+syn keyword sqlKeyword	 free freepage french fresh full function 
+syn keyword sqlKeyword	 gb generic get_bit go global grid
 syn keyword sqlKeyword	 group handler hash having header hexadecimal
 syn keyword sqlKeyword	 hidden high history hg hng hold holdlock host
 syn keyword sqlKeyword	 hours http_body http_session_timeout id identified identity ignore
 syn keyword sqlKeyword	 ignore_dup_key ignore_dup_row immediate
-syn keyword sqlKeyword	 in inactiv inactive inactivity included incremental
+syn keyword sqlKeyword	 in inactiv inactive inactivity included increment incremental
 syn keyword sqlKeyword	 index index_enabled index_lparen indexonly info
 syn keyword sqlKeyword	 inline inner inout insensitive inserting
 syn keyword sqlKeyword	 instead integrated
-syn keyword sqlKeyword	 internal intersection into introduced invoker iq is isolation
+syn keyword sqlKeyword	 internal intersection into introduced inverse invoker 
+syn keyword sqlKeyword	 iq is isolation
 syn keyword sqlKeyword	 jar java java_location java_main_userid java_vm_options
 syn keyword sqlKeyword	 jconnect jdk join kb key keep kerberos language last
-syn keyword sqlKeyword	 last_keyword last_value lateral ld left len lf ln level like
-syn keyword sqlKeyword	 limit local location log
-syn keyword sqlKeyword	 logging login logscan long low lru main manual mark
-syn keyword sqlKeyword	 match matched materialized max maximum mb membership
-syn keyword sqlKeyword	 merge metadata methods minimum minutes mirror mode modify monitor move mru
-syn keyword sqlKeyword	 multiplex name named national native natural new next no
-syn keyword sqlKeyword	 noholdlock nolock nonclustered none not
-syn keyword sqlKeyword	 notify null nullable_constant nulls object oem_string of off offline
-syn keyword sqlKeyword	 old on online only openstring optimization optimizer option
-syn keyword sqlKeyword	 or order others out outer over
+syn keyword sqlKeyword	 last_keyword last_value lateral latitude
+syn keyword sqlKeyword	 ld left len linear lf ln level like
+syn keyword sqlKeyword	 limit local location log 
+syn keyword sqlKeyword	 logging logical login logscan long longitude low lru ls
+syn keyword sqlKeyword	 main major manual mark
+syn keyword sqlKeyword	 match matched materialized max maxvalue maximum mb measure membership
+syn keyword sqlKeyword	 merge metadata methods minimum minor minutes minvalue mirror 
+syn keyword sqlKeyword	 mode modify monitor move mru multiplex 
+syn keyword sqlKeyword	 name named namespaces national native natural new next nextval 
+syn keyword sqlKeyword	 ngram no noholdlock nolock nonclustered none normal not
+syn keyword sqlKeyword	 notify null nullable_constant nulls 
+syn keyword sqlKeyword	 object oem_string of off offline offset olap
+syn keyword sqlKeyword	 old on online only openstring operator
+syn keyword sqlKeyword	 optimization optimizer option
+syn keyword sqlKeyword	 or order organization others out outer over
 syn keyword sqlKeyword	 package packetsize padding page pages
-syn keyword sqlKeyword	 paglock parallel part partial partition partitions partner password path
-syn keyword sqlKeyword	 pctfree plan policy populate port postfilter preceding precision
-syn keyword sqlKeyword	 prefetch prefilter prefix preserve preview primary
-syn keyword sqlKeyword	 prior priority priqty private privileges procedure profile
+syn keyword sqlKeyword	 paglock parallel parameter parent part 
+syn keyword sqlKeyword	 partition partitions partner password path pctfree 
+syn keyword sqlKeyword	 perms plan planar policy polygon populate port postfilter preceding 
+syn keyword sqlKeyword	 precisionprefetch prefilter prefix preserve preview previous
+syn keyword sqlKeyword	 primary prior priority priqty private privileges procedure profile
 syn keyword sqlKeyword	 property_is_cumulative property_is_numeric public publication publish publisher
 syn keyword sqlKeyword	 quiesce quote quotes range readclientfile readcommitted reader readfile readonly
 syn keyword sqlKeyword	 readpast readuncommitted readwrite rebuild
 syn keyword sqlKeyword	 received recompile recover recursive references
-syn keyword sqlKeyword	 referencing refresh regex regexp regexp_substr relative relocate
-syn keyword sqlKeyword	 rename repeatable repeatableread
-syn keyword sqlKeyword	 replicate request_timeout required rereceive resend reserve reset
-syn keyword sqlKeyword	 resizing resolve resource respect
+syn keyword sqlKeyword	 referencing regex regexp regexp_substr relative relocate
+syn keyword sqlKeyword	 rename repeatable repeatableread replicate 
+syn keyword sqlKeyword	 requests request_timeout required rereceive resend reserve reset
+syn keyword sqlKeyword	 resizing resolve resource respect restart
 syn keyword sqlKeyword	 restrict result retain
 syn keyword sqlKeyword	 returns reverse right role
-syn keyword sqlKeyword	 rollup root row row_number rowlock rows save
+syn keyword sqlKeyword	 rollup root row row_number rowlock rows 
 syn keyword sqlKeyword	 sa_index_hash sa_internal_fk_verify sa_internal_termbreak
 syn keyword sqlKeyword	 sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix
-syn keyword sqlKeyword	 schedule schema scope scripted scroll seconds secqty security
-syn keyword sqlKeyword	 send sensitive sent serializable
+syn keyword sqlKeyword	 scale schedule schema scope scripted scroll seconds secqty security
+syn keyword sqlKeyword	 semi send sensitive sent sequence serializable
 syn keyword sqlKeyword	 server server session set_bit set_bits sets
-syn keyword sqlKeyword	 share simple since site size skip
-syn keyword sqlKeyword	 snapshot soapheader soap_header split some sorted_data
-syn keyword sqlKeyword	 sqlcode sqlid sqlflagger sqlstate sqrt square
+syn keyword sqlKeyword	 shapefile share side simple since site size skip
+syn keyword sqlKeyword	 snap snapshot soapheader soap_header 
+syn keyword sqlKeyword	 spatial split some sorted_data
+syn keyword sqlKeyword	 sql sqlcode sqlid sqlflagger sqlstate sqrt square
 syn keyword sqlKeyword	 stacker stale statement statistics status stddev_pop stddev_samp
-syn keyword sqlKeyword	 stemmer stogroup stoplist store
+syn keyword sqlKeyword	 stemmer stogroup stoplist storage store
 syn keyword sqlKeyword	 strip stripesizekb striping subpages subscribe subscription
 syn keyword sqlKeyword	 subtransaction suser_id suser_name synchronization
-syn keyword sqlKeyword	 syntax_error table tablock
-syn keyword sqlKeyword	 tablockx tb temp template temporary term then
-syn keyword sqlKeyword	 ties timezone to to_char to_nchar top traced_plan tracing
-syn keyword sqlKeyword	 transfer transaction transactional tries true
-syn keyword sqlKeyword	 tsequal type tune uncommitted unconditionally
-syn keyword sqlKeyword	 unenforced unicode unique union unistr unknown unlimited unload
+syn keyword sqlKeyword	 syntax_error table tables tablock
+syn keyword sqlKeyword	 tablockx tb temp template temporary term then ties 
+syn keyword sqlKeyword	 timezone timeout to to_char to_nchar tolerance top
+syn keyword sqlKeyword	 traced_plan tracing
+syn keyword sqlKeyword	 transfer transform transaction transactional treat tries 
+syn keyword sqlKeyword	 true tsequal type tune uncommitted unconditionally
+syn keyword sqlKeyword	 unenforced unicode unique unistr unit unknown unlimited unload
 syn keyword sqlKeyword	 unpartition unquiesce updatetime updating updlock upgrade upload
-syn keyword sqlKeyword	 upper use user
+syn keyword sqlKeyword	 upper usage use user
 syn keyword sqlKeyword	 using utc utilities validproc
 syn keyword sqlKeyword	 value values varchar variable
-syn keyword sqlKeyword	 varying var_pop var_samp vcat verify versions view virtual wait
-syn keyword sqlKeyword	 warning wd web when where window with with_auto
+syn keyword sqlKeyword	 varying var_pop var_samp vcat verbosity
+syn keyword sqlKeyword	 verify versions view virtual wait
+syn keyword sqlKeyword	 warning wd web when where with with_auto
 syn keyword sqlKeyword	 with_auto with_cube with_rollup without
 syn keyword sqlKeyword	 with_lparen within word work workload write writefile
-syn keyword sqlKeyword	 writeclientfile writer writers writeserver xlock zeros
-" XML function support
-syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
-syn keyword sqlFunction	 xmlattributes
+syn keyword sqlKeyword	 writeclientfile writer writers writeserver xlock 
+syn keyword sqlKeyword	 zeros zone
+" XML 
 syn keyword sqlKeyword	 raw auto elements explicit
 " HTTP support
 syn keyword sqlKeyword	 authorization secure url service next_soap_header
@@ -488,37 +610,119 @@
 syn keyword sqlKeyword	 character dec options proc reference
 syn keyword sqlKeyword	 subtrans tran syn keyword
 
+" Spatial Predicates
+syn keyword sqlKeyword   ST_Contains
+syn keyword sqlKeyword   ST_ContainsFilter
+syn keyword sqlKeyword   ST_CoveredBy
+syn keyword sqlKeyword   ST_CoveredByFilter
+syn keyword sqlKeyword   ST_Covers
+syn keyword sqlKeyword   ST_CoversFilter
+syn keyword sqlKeyword   ST_Crosses
+syn keyword sqlKeyword   ST_Disjoint
+syn keyword sqlKeyword   ST_Equals
+syn keyword sqlKeyword   ST_EqualsFilter
+syn keyword sqlKeyword   ST_Intersects
+syn keyword sqlKeyword   ST_IntersectsFilter
+syn keyword sqlKeyword   ST_IntersectsRect
+syn keyword sqlKeyword   ST_OrderingEquals
+syn keyword sqlKeyword   ST_Overlaps
+syn keyword sqlKeyword   ST_Relate
+syn keyword sqlKeyword   ST_Touches
+syn keyword sqlKeyword   ST_Within
+syn keyword sqlKeyword   ST_WithinFilter
+" Spatial Set operations
+syn keyword sqlKeyword   ST_Affine
+syn keyword sqlKeyword   ST_Boundary
+syn keyword sqlKeyword   ST_Buffer
+syn keyword sqlKeyword   ST_ConvexHull
+syn keyword sqlKeyword   ST_ConvexHullAggr
+syn keyword sqlKeyword   ST_Difference
+syn keyword sqlKeyword   ST_Intersection
+syn keyword sqlKeyword   ST_IntersectionAggr
+syn keyword sqlKeyword   ST_SymDifference
+syn keyword sqlKeyword   ST_Union
+syn keyword sqlKeyword   ST_UnionAggr
+" Spatial Bounds
+syn keyword sqlKeyword   ST_Envelope
+syn keyword sqlKeyword   ST_EnvelopeAggr
+syn keyword sqlKeyword   ST_Lat
+syn keyword sqlKeyword   ST_LatMax
+syn keyword sqlKeyword   ST_LatMin
+syn keyword sqlKeyword   ST_Long
+syn keyword sqlKeyword   ST_LongMax
+syn keyword sqlKeyword   ST_LongMin
+syn keyword sqlKeyword   ST_M
+syn keyword sqlKeyword   ST_MMax
+syn keyword sqlKeyword   ST_MMin
+syn keyword sqlKeyword   ST_Point
+syn keyword sqlKeyword   ST_X
+syn keyword sqlKeyword   ST_XMax
+syn keyword sqlKeyword   ST_XMin
+syn keyword sqlKeyword   ST_Y
+syn keyword sqlKeyword   ST_YMax
+syn keyword sqlKeyword   ST_YMin
+syn keyword sqlKeyword   ST_Z
+syn keyword sqlKeyword   ST_ZMax
+syn keyword sqlKeyword   ST_ZMin
+" Spatial Collection Aggregates
+syn keyword sqlKeyword   ST_GeomCollectionAggr
+syn keyword sqlKeyword   ST_LineStringAggr
+syn keyword sqlKeyword   ST_MultiCurveAggr
+syn keyword sqlKeyword   ST_MultiLineStringAggr
+syn keyword sqlKeyword   ST_MultiPointAggr
+syn keyword sqlKeyword   ST_MultiPolygonAggr
+syn keyword sqlKeyword   ST_MultiSurfaceAggr
+syn keyword sqlKeyword   ST_Perimeter
+syn keyword sqlKeyword   ST_PointOnSurface
+" Spatial SRS
+syn keyword sqlKeyword   ST_CompareWKT
+syn keyword sqlKeyword   ST_FormatWKT
+syn keyword sqlKeyword   ST_ParseWKT
+syn keyword sqlKeyword   ST_TransformGeom
+syn keyword sqlKeyword   ST_GeometryTypeFromBaseType
+syn keyword sqlKeyword   ST_SnapToGrid
+syn keyword sqlKeyword   ST_Transform
+syn keyword sqlKeyword   ST_SRID
+syn keyword sqlKeyword   ST_SRIDFromBaseType
+syn keyword sqlKeyword   ST_LoadConfigurationData
+" Spatial Indexes
+syn keyword sqlKeyword   ST_LinearHash
+syn keyword sqlKeyword   ST_LinearUnHash
 
 syn keyword sqlOperator	 in any some all between exists
 syn keyword sqlOperator	 like escape not is and or
-syn keyword sqlOperator  intersect minus
+syn keyword sqlOperator  minus
 syn keyword sqlOperator  prior distinct
 
-syn keyword sqlStatement allocate alter backup begin call case
-syn keyword sqlStatement checkpoint clear close commit configure connect
-syn keyword sqlStatement create deallocate declare delete describe
-syn keyword sqlStatement disconnect drop execute exit explain fetch
+syn keyword sqlStatement allocate alter attach backup begin break call case
+syn keyword sqlStatement checkpoint clear close comment commit configure connect
+syn keyword sqlStatement continue create deallocate declare delete describe
+syn keyword sqlStatement detach disconnect drop except execute exit explain fetch
 syn keyword sqlStatement for forward from get goto grant help if include
-syn keyword sqlStatement input insert install leave load lock loop
-syn keyword sqlStatement message open output parameter parameters passthrough
-syn keyword sqlStatement prepare print put raiserror read readtext release
+syn keyword sqlStatement input insert install intersect leave load lock loop
+syn keyword sqlStatement message open output parameters passthrough
+syn keyword sqlStatement prepare print put raiserror read readtext refresh release
 syn keyword sqlStatement remote remove reorganize resignal restore resume
-syn keyword sqlStatement return revoke rollback savepoint select
+syn keyword sqlStatement return revoke rollback save savepoint select
 syn keyword sqlStatement set setuser signal start stop synchronize
-syn keyword sqlStatement system trigger truncate unload update
-syn keyword sqlStatement validate waitfor whenever while writetext
+syn keyword sqlStatement system trigger truncate union unload update
+syn keyword sqlStatement validate waitfor whenever while window writetext
 
 
-syn keyword sqlType	 char long varchar text
-syn keyword sqlType	 bigint decimal double float int integer numeric
+syn keyword sqlType	 char nchar long varchar nvarchar text ntext uniqueidentifierstr xml
+syn keyword sqlType	 bigint bit decimal double varbit
+syn keyword sqlType	 float int integer numeric
 syn keyword sqlType	 smallint tinyint real
 syn keyword sqlType	 money smallmoney
-syn keyword sqlType	 bit
-syn keyword sqlType	 date datetime smalldate time timestamp
+syn keyword sqlType	 date datetime datetimeoffset smalldatetime time timestamp
 syn keyword sqlType	 binary image varbinary uniqueidentifier
-syn keyword sqlType	 xml unsigned
-" New types 10.0.0
-syn keyword sqlType	 varbit nchar nvarchar
+syn keyword sqlType	 unsigned
+" Spatial types
+syn keyword sqlType	 st_geometry st_point st_curve st_surface st_geomcollection
+syn keyword sqlType	 st_linestring st_circularstring st_compoundcurve
+syn keyword sqlType	 st_curvepolygon st_polygon
+syn keyword sqlType	 st_multipoint st_multicurve st_multisurface
+syn keyword sqlType	 st_multilinestring st_multipolygon
 
 syn keyword sqlOption    Allow_nulls_by_default
 syn keyword sqlOption    Allow_read_client_file
@@ -556,6 +760,7 @@
 syn keyword sqlOption    Default_timestamp_increment
 syn keyword sqlOption    Delayed_commit_timeout
 syn keyword sqlOption    Delayed_commits
+syn keyword sqlOption    Divide_by_zero_error
 syn keyword sqlOption    Escape_character
 syn keyword sqlOption    Exclude_operators
 syn keyword sqlOption    Extended_join_syntax
@@ -633,6 +838,7 @@
 syn keyword sqlOption    Update_statistics
 syn keyword sqlOption    Upgrade_database_capability
 syn keyword sqlOption    User_estimates
+syn keyword sqlOption    Uuid_has_hyphens
 syn keyword sqlOption    Verify_password_function
 syn keyword sqlOption    Wait_for_commit
 syn keyword sqlOption    Webservice_namespace_host
diff --git a/runtime/syntax/tasm.vim b/runtime/syntax/tasm.vim
index 1cfc121..2f85596 100644
--- a/runtime/syntax/tasm.vim
+++ b/runtime/syntax/tasm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language: TASM: turbo assembler by Borland
 " Maintaner: FooLman of United Force <foolman@bigfoot.com>
-" Last change: 22 aug 2000
+" Last Change: 2012 Feb 03 by Thilo Six
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -11,6 +11,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn case ignore
 syn match tasmLabel "^[\ \t]*[@a-z_$][a-z0-9_$@]*\ *:"
 syn keyword tasmDirective ALIAS ALIGN ARG ASSUME %BIN CATSRT CODESEG
@@ -120,3 +123,6 @@
 endif
 
 let b:curret_syntax = "tasm"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/tsalt.vim b/runtime/syntax/tsalt.vim
index 56f1755..887d6b7 100644
--- a/runtime/syntax/tsalt.vim
+++ b/runtime/syntax/tsalt.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Telix (Modem Comm Program) SALT Script
 " Maintainer:	Sean M. McKee <mckee@misslink.net>
-" Last Change:	2001 May 09
+" Last Change:	2012 Feb 03 by Thilo Six
 " Version Info: @(#)tsalt.vim	1.5	97/12/16 08:11:15
 
 " For version 5.x: Clear all syntax items
@@ -12,6 +12,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " turn case matching off
 syn case ignore
 
@@ -211,4 +214,6 @@
 
 let b:current_syntax = "tsalt"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
diff --git a/runtime/syntax/vhdl.vim b/runtime/syntax/vhdl.vim
index 4ac3b6d..6573af0 100644
--- a/runtime/syntax/vhdl.vim
+++ b/runtime/syntax/vhdl.vim
@@ -2,6 +2,7 @@
 " Language:	VHDL
 " Maintainer:	Czo <Olivier.Sirol@lip6.fr>
 " Credits:	Stephan Hegel <stephan.hegel@snc.siemens.com.cn>
+" Last Changed:	2012 Feb 03 by Thilo Six
 " $Id: vhdl.vim,v 1.1 2004/06/13 15:34:56 vimboss Exp $
 
 " VHSIC Hardware Description Language
@@ -15,6 +16,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " This is not VHDL. I use the C-Preprocessor cpp to generate different binaries
 " from one VHDL source file. Unfortunately there is no preprocessor for VHDL
 " available. If you don't like this, please remove the following lines.
@@ -181,4 +185,6 @@
 
 let b:current_syntax = "vhdl"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8
diff --git a/runtime/syntax/viminfo.vim b/runtime/syntax/viminfo.vim
index d174edf..7af3b89 100644
--- a/runtime/syntax/viminfo.vim
+++ b/runtime/syntax/viminfo.vim
@@ -1,13 +1,16 @@
 " Vim syntax file
 " Language:	Vim .viminfo file
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2005 Jun 20
+" Last Change:	2012 Feb 03
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 " The lines that are NOT recognized
 syn match viminfoError "^[^\t].*"
 
@@ -35,4 +38,7 @@
 
 let b:current_syntax = "viminfo"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
 " vim: ts=8 sw=2
diff --git a/runtime/syntax/xpm2.vim b/runtime/syntax/xpm2.vim
index b057946..9b85d0b 100644
--- a/runtime/syntax/xpm2.vim
+++ b/runtime/syntax/xpm2.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	X Pixmap v2
 " Maintainer:	Steve Wall (hitched97@velnet.com)
-" Last Change:	2008 May 28
+" Last Change:	2012 Feb 03 by Thilo Six
 " Version:	5.8
 "
 " Made from xpm.vim by Ronald Schild <rs@scutum.de>
@@ -14,6 +14,9 @@
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 syn region  xpm2PixelString	start="^"  end="$"  contains=@xpm2Colors
 syn keyword xpm2Todo		TODO FIXME XXX  contained
 syn match   xpm2Comment		"\!.*$"  contains=xpm2Todo
@@ -159,4 +162,6 @@
 
 let b:current_syntax = "xpm2"
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
 " vim: ts=8:sw=2:noet: