Fixed compatible mode in most runtime files.
diff --git a/runtime/compiler/cs.vim b/runtime/compiler/cs.vim
index 7ba0b60..4cc1784 100644
--- a/runtime/compiler/cs.vim
+++ b/runtime/compiler/cs.vim
@@ -2,12 +2,14 @@
 " Compiler:	Microsoft Visual Studio C#
 " Maintainer:	Zhou YiChao (broken.zhou@gmail.com)
 " Previous Maintainer:	Joseph H. Yao (hyao@sina.com)
-" Last Change:	2011 Apr 21
+" Last Change:	2012 Apr 30
 
 if exists("current_compiler")
   finish
 endif
 let current_compiler = "cs"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -19,3 +21,6 @@
             \%tarning%*[^:]:\ %m
 
 CompilerSet makeprg=csc\ %
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/decada.vim b/runtime/compiler/decada.vim
index 8e267ec..4670bbd 100644
--- a/runtime/compiler/decada.vim
+++ b/runtime/compiler/decada.vim
@@ -15,6 +15,9 @@
 "    Help Page: compiler-decada
 "------------------------------------------------------------------------------
 
+let s:keepcpo= &cpo
+set cpo&vim
+
 if (exists("current_compiler")	    &&
    \ current_compiler == "decada")  ||
    \ version < 700
@@ -44,6 +47,9 @@
 execute "CompilerSet makeprg="     . escape (g:decada.Make_Command, ' ')
 execute "CompilerSet errorformat=" . escape (g:decada.Error_Format, ' ')
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 finish " 1}}}
 
 "------------------------------------------------------------------------------
diff --git a/runtime/compiler/g95.vim b/runtime/compiler/g95.vim
index af8f05c..ecb3212 100644
--- a/runtime/compiler/g95.vim
+++ b/runtime/compiler/g95.vim
@@ -1,7 +1,7 @@
 " Compiler: G95
 " Maintainer: H Xu <xuhdev@gmail.com>
 " Version: 0.1.3
-" Last Change: 2011 Apr 01
+" Last Change: 2012 Apr 30
 " Homepage: http://www.vim.org/scripts/script.php?script_id=3492
 "           https://bitbucket.org/xuhdev/compiler-g95.vim
 " License: Same as Vim
@@ -10,6 +10,8 @@
     finish
 endif
 let current_compiler = 'g95'
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -21,3 +23,6 @@
             \%-Z%trror:\ %m,
             \%-Z%tarning\ (%n):\ %m,
             \%-C%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/gfortran.vim b/runtime/compiler/gfortran.vim
index 898026e..1e4e5cf 100644
--- a/runtime/compiler/gfortran.vim
+++ b/runtime/compiler/gfortran.vim
@@ -1,7 +1,7 @@
 " Compiler: GNU Fortran Compiler
 " Maintainer: H Xu <xuhdev@gmail.com>
 " Version: 0.1.3
-" Last Change: 19 March 2011
+" Last Change: 2012 Apr 30
 " Homepage: http://www.vim.org/scripts/script.php?script_id=3496
 "           https://bitbucket.org/xuhdev/compiler-gfortran.vim
 " License: Same as Vim
@@ -10,6 +10,8 @@
     finish
 endif
 let current_compiler = 'gfortran'
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -20,3 +22,6 @@
             \%-Z%trror:\ %m,
             \%-Z%tarning:\ %m,
             \%-C%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/gnat.vim b/runtime/compiler/gnat.vim
index d7ec55b..3ad1eb4 100644
--- a/runtime/compiler/gnat.vim
+++ b/runtime/compiler/gnat.vim
@@ -17,11 +17,11 @@
 "    Help Page: compiler-gnat
 "------------------------------------------------------------------------------
 
-if (exists("current_compiler")	    &&
-   \ current_compiler == "gnat")    ||
-   \ version < 700
+if (exists("current_compiler")&& current_compiler == "gnat") || version < 700
    finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 let current_compiler = "gnat"
 
@@ -62,6 +62,9 @@
 execute "CompilerSet makeprg="     . escape (g:gnat.Get_Command('Make'), ' ')
 execute "CompilerSet errorformat=" . escape (g:gnat.Error_Format, ' ')
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 finish " 1}}}
 
 "------------------------------------------------------------------------------
diff --git a/runtime/compiler/hp_acc.vim b/runtime/compiler/hp_acc.vim
index 685bd5b..15d5ce5 100644
--- a/runtime/compiler/hp_acc.vim
+++ b/runtime/compiler/hp_acc.vim
@@ -2,7 +2,7 @@
 " Compiler:	HP aCC
 " Maintainer:	Matthias Ulrich <matthias-ulrich@web.de>
 " URL:          http://www.subhome.de/vim/hp_acc.vim
-" Last Change:	2005 Nov 19
+" Last Change:	2012 Apr 30
 "
 "  aCC --version says: "HP ANSI C++ B3910B A.03.13"
 "  This compiler has been tested on:
@@ -19,6 +19,8 @@
   finish
 endif
 let current_compiler = "hp_acc"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -30,4 +32,7 @@
          \%Z\ \ \ \ %p^%.%#,
          \%-C%.%#
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:ts=8:sw=4:cindent
diff --git a/runtime/compiler/ifort.vim b/runtime/compiler/ifort.vim
index 04763f9..3a60d0c 100644
--- a/runtime/compiler/ifort.vim
+++ b/runtime/compiler/ifort.vim
@@ -1,7 +1,7 @@
 " Compiler: Intel Fortran Compiler
 " Maintainer: H Xu <xuhdev@gmail.com>
 " Version: 0.1.1
-" Last Change: 19 March 2011
+" Last Change: 2012 Apr 30
 " Homepage: http://www.vim.org/scripts/script.php?script_id=3497
 "           https://bitbucket.org/xuhdev/compiler-ifort.vim
 " License: Same as Vim
@@ -10,6 +10,8 @@
     finish
 endif
 let current_compiler = 'ifort'
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -20,3 +22,6 @@
             \%A%f(%l):\ %tarning\ \#%n:\ %m,
             \%-Z%p^,
             \%-G%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/intel.vim b/runtime/compiler/intel.vim
index 9183826..254d13b 100644
--- a/runtime/compiler/intel.vim
+++ b/runtime/compiler/intel.vim
@@ -1,12 +1,14 @@
 " Vim compiler file
 " Compiler:     Intel C++ 7.1
 " Maintainer:   David Harrison <david_jr@users.sourceforge.net>
-" Last Change:  2004 May 16
+" Last Change:  2012 Apr 30
 
 if exists("current_compiler")
   finish
 endif
 let current_compiler = "intel"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -19,3 +21,6 @@
 		    \%-Z\ \ %p^,
 		    \%-G\\s%#,
 		    \%-G%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/irix5_c.vim b/runtime/compiler/irix5_c.vim
index 87bb9e1..f440e74 100644
--- a/runtime/compiler/irix5_c.vim
+++ b/runtime/compiler/irix5_c.vim
@@ -1,12 +1,14 @@
 " Vim compiler file
 " Compiler:	SGI IRIX 5.3 cc
 " Maintainer:	David Harrison <david_jr@users.sourceforge.net>
-" Last Change:	2004 Mar 27
+" Last Change:	2012 Apr 30
 
 if exists("current_compiler")
   finish
 endif
 let current_compiler = "irix5_c"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -19,3 +21,6 @@
 		     \%-Z\ %p^,
 		     \-G\\s%#,
 		     \%-G%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/irix5_cpp.vim b/runtime/compiler/irix5_cpp.vim
index f505768..0112dc1 100644
--- a/runtime/compiler/irix5_cpp.vim
+++ b/runtime/compiler/irix5_cpp.vim
@@ -1,12 +1,14 @@
 " Vim compiler file
 " Compiler:	SGI IRIX 5.3 CC or NCC
 " Maintainer:	David Harrison <david_jr@users.sourceforge.net>
-" Last Change:	2004 Mar 27
+" Last Change:	2012 Apr 30
 
 if exists("current_compiler")
   finish
 endif
 let current_compiler = "irix5_cpp"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -19,3 +21,6 @@
 		      \%-Z\ \ %p%^,
 		      \%+C\ %\\{10}%.%#,
 		      \%-G%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/mips_c.vim b/runtime/compiler/mips_c.vim
index b57eac0..a0ebfe7 100644
--- a/runtime/compiler/mips_c.vim
+++ b/runtime/compiler/mips_c.vim
@@ -1,12 +1,14 @@
 " Vim compiler file
 " Compiler:	SGI IRIX 6.5 MIPS C (cc)
 " Maintainer:	David Harrison <david_jr@users.sourceforge.net>
-" Last Change:	2004 Mar 27
+" Last Change:	2012 Apr 30
 
 if exists("current_compiler")
   finish
 endif
 let current_compiler = "mips_c"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -19,3 +21,6 @@
 		    \%-Z\ \ %p^,
 		    \%-G\\s%#,
 		    \%-G%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/mipspro_c89.vim b/runtime/compiler/mipspro_c89.vim
index 258a800..20eb70d 100644
--- a/runtime/compiler/mipspro_c89.vim
+++ b/runtime/compiler/mipspro_c89.vim
@@ -1,12 +1,14 @@
 " Vim compiler file
 " Compiler:	SGI IRIX 6.5 MIPSPro C (c89)
 " Maintainer:	David Harrison <david_jr@users.sourceforge.net>
-" Last Change:	2004 Mar 27
+" Last Change:	2012 Apr 30
 
 if exists("current_compiler")
   finish
 endif
 let current_compiler = "mipspro_c89"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -20,3 +22,6 @@
 		    \%+C\ \ %m,
 		    \%-G\\s%#,
 		    \%-G%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/mipspro_cpp.vim b/runtime/compiler/mipspro_cpp.vim
index 1f6074a..2f43af8 100644
--- a/runtime/compiler/mipspro_cpp.vim
+++ b/runtime/compiler/mipspro_cpp.vim
@@ -1,12 +1,14 @@
 " Vim compiler file
 " Compiler:	SGI IRIX 6.5 MIPSPro C++ (CC)
 " Maintainer:	David Harrison <david_jr@users.sourceforge.net>
-" Last Change:	2004 Mar 27
+" Last Change:	2012 Apr 30
 
 if exists("current_compiler")
   finish
 endif
 let current_compiler = "mipspro_cpp"
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -19,3 +21,6 @@
 		    \%-Z\ \ %p^,
 		    \%-G\\s%#,
 		    \%-G%.%#
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/compiler/tex.vim b/runtime/compiler/tex.vim
index 5828a91..e43be8d 100644
--- a/runtime/compiler/tex.vim
+++ b/runtime/compiler/tex.vim
@@ -1,11 +1,13 @@
 " Vim compiler file
 " Compiler:     TeX
 " Maintainer:   Artem Chuprina <ran@ran.pp.ru>
-" Last Change:  2004 Mar 27
+" Last Change:  2012 Apr 30
 
 if exists("current_compiler")
 	finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists(":CompilerSet") != 2		" older Vim always used :setlocal
   command -nargs=* CompilerSet setlocal <args>
@@ -30,9 +32,6 @@
 	let current_compiler = 'make'
 endif
 
-let s:cpo_save = &cpo
-set cpo-=C
-
 " Value errorformat are taken from vim help, see :help errorformat-LaTeX, with
 " addition from Srinath Avadhanula <srinath@fastmail.fm>
 CompilerSet errorformat=%E!\ LaTeX\ %trror:\ %m,
@@ -64,5 +63,5 @@
 	\%+Q%*[^()])%r,
 	\%+Q[%\\d%*[^()])%r
 
-let &cpo = s:cpo_save
-unlet s:cpo_save
+let &cpo = s:keepcpo
+unlet s:keepcpo