Fixed compatible mode in most runtime files.
diff --git a/runtime/syntax/ada.vim b/runtime/syntax/ada.vim
index 4f04bd0..c9d2b06 100644
--- a/runtime/syntax/ada.vim
+++ b/runtime/syntax/ada.vim
@@ -32,6 +32,8 @@
 if exists("b:current_syntax") || version < 700
     finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 let b:current_syntax = "ada"
 
@@ -352,6 +354,9 @@
 " this speeds things up greatly.
 syntax sync minlines=1 maxlines=1
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 finish " 1}}}
 
 "------------------------------------------------------------------------------
diff --git a/runtime/syntax/autoit.vim b/runtime/syntax/autoit.vim
index 47210f5..1b9ab74 100644
--- a/runtime/syntax/autoit.vim
+++ b/runtime/syntax/autoit.vim
@@ -6,6 +6,15 @@
 " Script URL:	http://www.vim.org/scripts/script.php?script_id=1239
 " ChangeLog:	Please visit the script URL for detailed change information
 
+" Quit when a syntax file was already loaded.
+if exists("b:current_syntax")
+  finish
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+let b:current_syntax = "autoit"
+
 " AutoIt is not case dependent
 syn case ignore
 
@@ -1108,4 +1117,8 @@
 hi def link autoitStyle Type
 hi def link autoitConst Type
 hi def link autoitSend Type
+
 syn sync minlines=50
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/syntax/cmake.vim b/runtime/syntax/cmake.vim
index d6e8cb4..e241605e 100644
--- a/runtime/syntax/cmake.vim
+++ b/runtime/syntax/cmake.vim
@@ -18,6 +18,8 @@
 elseif exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 syn case ignore
 syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained
@@ -78,4 +80,7 @@
 
 let b:current_syntax = "cmake"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 "EOF"
diff --git a/runtime/syntax/cucumber.vim b/runtime/syntax/cucumber.vim
index d852681..9e7a9d3 100644
--- a/runtime/syntax/cucumber.vim
+++ b/runtime/syntax/cucumber.vim
@@ -2,11 +2,13 @@
 " Language:     Cucumber
 " Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
 " Filenames:    *.feature
-" Last Change:	2010 May 21
+" Last Change:	2012 Apr 30
 
 if exists("b:current_syntax")
     finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 syn case match
 syn sync minlines=20
@@ -123,4 +125,7 @@
 
 let b:current_syntax = "cucumber"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:set sts=2 sw=2:
diff --git a/runtime/syntax/datascript.vim b/runtime/syntax/datascript.vim
index b51f418..76f977a 100644
--- a/runtime/syntax/datascript.vim
+++ b/runtime/syntax/datascript.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Datascript
 " Maintainer:	Dominique Pelle <dominique.pelle@gmail.com>
-" Last Change:	2010-08-01
+" Last Change:	2012 Apr 30
 "
 " DataScript is a formal language for modelling binary datatypes,
 " bitstreams or file formats. For more information, see:
@@ -12,6 +12,8 @@
 elseif exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 syn keyword dsPackage      import package
 syn keyword dsType         bit string
@@ -88,3 +90,6 @@
 hi def link dsComment           Comment
 
 let b:current_syntax = "datascript"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/syntax/fvwm.vim b/runtime/syntax/fvwm.vim
index 29112fc..2f96bab 100644
--- a/runtime/syntax/fvwm.vim
+++ b/runtime/syntax/fvwm.vim
@@ -12,6 +12,8 @@
 if exists("b:current_syntax")
     finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Fvwm configuration files are case insensitive
 syn case ignore
@@ -635,3 +637,6 @@
 hi def link fvwmModuleName	Function
 
 let b:current_syntax = "fvwm"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/syntax/lsl.vim b/runtime/syntax/lsl.vim
index 3f24816..3b2baa0 100644
--- a/runtime/syntax/lsl.vim
+++ b/runtime/syntax/lsl.vim
@@ -1,12 +1,14 @@
 " Vim syntax file
 " Language:	Linden Scripting Language
 " Maintainer:	Timo Frenay <timo@frenay.net>
-" Last Change:	2008 Mar 29
+" Last Change:	2012 Apr 30
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Initializations
 syn case match
@@ -269,4 +271,7 @@
 
 let b:current_syntax = "lsl"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim: ts=8
diff --git a/runtime/syntax/objc.vim b/runtime/syntax/objc.vim
index c575cf2..8829b49 100644
--- a/runtime/syntax/objc.vim
+++ b/runtime/syntax/objc.vim
@@ -3,7 +3,7 @@
 " Maintainer:	    Kazunobu Kuriyama <kazunobu.kuriyama@nifty.com>
 " Ex-maintainer:    Anthony Hodsdon <ahodsdon@fastmail.fm>
 " First Author:	    Valentino Kyriakides <1kyriaki@informatik.uni-hamburg.de>
-" Last Change:	    2007 Feb 21
+" Last Change:	    2012 Apr 30
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -12,6 +12,8 @@
 elseif exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 if &filetype != 'objcpp'
   " Read the C syntax to start with
@@ -107,4 +109,7 @@
 
 let b:current_syntax = "objc"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim: ts=8
diff --git a/runtime/syntax/perl6.vim b/runtime/syntax/perl6.vim
index 6a3baba..9361f9a 100644
--- a/runtime/syntax/perl6.vim
+++ b/runtime/syntax/perl6.vim
@@ -2,7 +2,7 @@
 " Language:     Perl 6
 " Maintainer:   Andy Lester <andy@petdance.com>
 " Homepage:     http://github.com/petdance/vim-perl/tree/master
-" Last Change:  2009-07-04
+" Last Change:  2012 Apr 30
 
 " Contributors: Luke Palmer <fibonaci@babylonia.flatirons.org>
 "               Moritz Lenz <moritz@faui2k3.org>
@@ -67,6 +67,8 @@
 elseif exists("b:current_syntax")
     finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 " identifiers
 syn match p6Normal display "\K\%(\k\|[-']\K\@=\)*"
@@ -2246,4 +2248,7 @@
 
 let b:current_syntax = "perl6"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:ts=8:sts=4:sw=4:expandtab:ft=vim
diff --git a/runtime/syntax/po.vim b/runtime/syntax/po.vim
index 45865b5..c09b960 100644
--- a/runtime/syntax/po.vim
+++ b/runtime/syntax/po.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	po (gettext)
 " Maintainer:	Dwayne Bailey <dwayne@translate.org.za>
-" Last Change:	2010 Sep 21
+" Last Change:	2012 Apr 30
 " Contributors: Dwayne Bailey (Most advanced syntax highlighting)
 "               Leonardo Fontenelle (Spell checking)
 "               Nam SungHyun <namsh@kldp.org> (Original maintainer)
@@ -13,6 +13,8 @@
 elseif exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 syn sync minlines=10
 
@@ -132,4 +134,7 @@
 
 let b:current_syntax = "po"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:set ts=8 sts=2 sw=2 noet:
diff --git a/runtime/syntax/sgmldecl.vim b/runtime/syntax/sgmldecl.vim
index 6a69fc5..13551b2 100644
--- a/runtime/syntax/sgmldecl.vim
+++ b/runtime/syntax/sgmldecl.vim
@@ -12,6 +12,8 @@
 elseif exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 syn case ignore
 
@@ -76,4 +78,8 @@
 endif
 
 let b:current_syntax = "sgmldecl"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:set tw=78 ts=4:
diff --git a/runtime/syntax/taskdata.vim b/runtime/syntax/taskdata.vim
index 79186e0..b37c70c 100644
--- a/runtime/syntax/taskdata.vim
+++ b/runtime/syntax/taskdata.vim
@@ -11,6 +11,8 @@
 elseif exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Key Names for values.
 syn keyword taskdataKey		description due end entry imask mask parent
@@ -40,4 +42,7 @@
 
 let b:current_syntax = "taskdata"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:noexpandtab
diff --git a/runtime/syntax/taskedit.vim b/runtime/syntax/taskedit.vim
index c7e0ea7..170153c 100644
--- a/runtime/syntax/taskedit.vim
+++ b/runtime/syntax/taskedit.vim
@@ -11,6 +11,8 @@
 elseif exists("b:current_syntax")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 syn match taskeditHeading	"^\s*#\s*Name\s\+Editable details\s*$" contained
 syn match taskeditHeading	"^\s*#\s*-\+\s\+-\+\s*$" contained
@@ -32,4 +34,7 @@
 
 let b:current_syntax = "taskedit"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:noexpandtab
diff --git a/runtime/syntax/valgrind.vim b/runtime/syntax/valgrind.vim
index f23b792..48e9564 100644
--- a/runtime/syntax/valgrind.vim
+++ b/runtime/syntax/valgrind.vim
@@ -2,7 +2,7 @@
 " Language: Valgrind Memory Debugger Output
 " Maintainer: Roger Luethi <rl@hellgate.ch>
 " Program URL: http://devel-home.kde.org/~sewardj/
-" Last Change: 2002 Apr 07
+" Last Change: 2012 Apr 30
 "
 " Notes: mostly based on strace.vim and xml.vim
 
@@ -10,6 +10,8 @@
 if exists("b:current_syntax")
 	finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 syn case match
 syn sync minlines=50
@@ -97,3 +99,6 @@
 hi def link valgrindSrc		Statement
 
 let b:current_syntax = "valgrind"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo