More runtime file fixes for 'compatible' mode.
diff --git a/runtime/compiler/decada.vim b/runtime/compiler/decada.vim
index 4670bbd..0bf5487 100644
--- a/runtime/compiler/decada.vim
+++ b/runtime/compiler/decada.vim
@@ -15,14 +15,11 @@
 "    Help Page: compiler-decada
 "------------------------------------------------------------------------------
 
-let s:keepcpo= &cpo
-set cpo&vim
-
-if (exists("current_compiler")	    &&
-   \ current_compiler == "decada")  ||
-   \ version < 700
+if (exists("current_compiler") && current_compiler == "decada") || version < 700
    finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 let current_compiler = "decada"
 
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index bb11f9c..3e19b1d 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -1,4 +1,4 @@
-*change.txt*    For Vim version 7.3.  Last change: 2012 Apr 25
+*change.txt*    For Vim version 7.3.  Last change: 2012 Apr 30
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -260,6 +260,12 @@
 			<CR>.  CTRL-V <NL> replaces with a <Nul>.
 			{Vi: CTRL-V <CR> still replaces with a line break,
 			cannot replace something with a <CR>}
+
+			If {char} is CTRL-E or CTRL-Y the character from the
+			line below or above is used, just like with |i_CTRL-E|
+			and |i_CTRL-Y|.  This also works with a count, thus
+			`10r<C-E>` copies 10 characters from the line below.
+
 			If you give a [count], Vim replaces [count] characters
 			with [count] {char}s.  When {char} is a <CR> or <NL>,
 			however, Vim inserts only one <CR>: "5r<CR>" replaces
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index be31f44..91ee7f4 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.3.  Last change: 2012 Apr 25
+*eval.txt*	For Vim version 7.3.  Last change: 2012 Apr 30
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -5964,6 +5964,8 @@
 		the undo file exists.
 		{name} is always expanded to the full path, since that is what
 		is used internally.
+		If {name} is empty undofile() returns an empty string, since a
+		buffer without a file name will not write an undo file.
 		Useful in combination with |:wundo| and |:rundo|.
 		When compiled without the +persistent_undo option this always
 		returns an empty string.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index d1df4cb..ac8e62c 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.3.  Last change: 2012 Apr 30
+*todo.txt*      For Vim version 7.3.  Last change: 2012 May 01
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -34,6 +34,8 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+patch to fix helphelp.txt from Ken Takata.  https://gist.github.com/2559599
+
 Go through more coverity reports.
 
 Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
@@ -41,9 +43,6 @@
 Stack trace of crash: http://vpaste.net/GBt9S
 (Alexandre Provencio)
 
-Once syntax and other runtime files have been fixed: add "set cp" to
-check.vim.  Use a function to run both with 'cp' and 'nocp'.
-
 GTK: problem with 'L' in 'guioptions' changing the window width.
 (Aaron Cornelius, 2012 Feb 6)
 
@@ -54,10 +53,6 @@
 complete the contents of the directory.  No escaping for the "!"? (Jan
 Stocker, 2012 Jan 5)
 
-Patch for crash involving curwin->w_s. (Christian Brabandt, 2012 Apr 20)
-What is the cause?  Leaks memory?  Other solution?
-More debug info Apr 26.  Patch with proper fix Apr 26.  Update 28 Apr.
-
 Issue 54: document behavior of -complete, also expands arg.
 
 Cursor on wrong line after ":copen". (John Beckett, 2012 Apr 30)
@@ -81,12 +76,6 @@
 for a user action without a prompt. (Maarten Billemont, 2012 Feb 3)
 Do give the prompt? Quit with an error?
 
-Patch for undofile(). (Christian Brabandt, 2012 Apr 27)
-
-Patch for: (Christian Brabandt, 2011 Aug 22)
--   Make it possible to enter "r<C-E>" and "r<C-Y>" (get character from line
-    below/above).
-
 Patch for: (Christian Brabandt, 2011 Aug 24, updated patch)
 8   ":sign unplace * file={filename}" should work.  Also: ":sign unplace *
     buffer={bufnr}".  So one can remove all signs for one file/buffer.
@@ -101,8 +90,6 @@
 Patch for Make_mvc.mak and Make_ming.mak for Ruby support. (Yasuhiro
 Matsumoto, 2012 Jan 30)
 
-Patch to add completion for :history command.  (Dominique Pelle, 2012 Feb 26)
-
 Patch for 'backupcopy' default behavior for symlinks on Windows. (David Pope,
 2012 Mar 21, update Mar 31)
 
diff --git a/runtime/ftplugin/qf.vim b/runtime/ftplugin/qf.vim
index 9d438b5..98c8f93 100644
--- a/runtime/ftplugin/qf.vim
+++ b/runtime/ftplugin/qf.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:     Vim's quickfix window
 " Maintainer:   Lech Lorens <Lech.Lorens@gmail.com>
-" Last Changed: 18 Dec 2010
+" Last Changed: 30 Apr 2012
 
 if exists("b:did_ftplugin")
   finish
@@ -13,4 +13,4 @@
 let b:undo_ftplugin = "set stl<"
 
 " Display the command that produced the list in the quickfix window:
-setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}
+setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
diff --git a/runtime/indent/ada.vim b/runtime/indent/ada.vim
index c7f8864..03fbaa3 100644
--- a/runtime/indent/ada.vim
+++ b/runtime/indent/ada.vim
@@ -28,8 +28,6 @@
 if exists("b:did_indent") || version < 700
    finish
 endif
-let s:keepcpo= &cpo
-set cpo&vim
 
 let b:did_indent = 45
 
@@ -41,6 +39,8 @@
 if exists("*GetAdaIndent")
    finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 if exists("g:ada_with_gnat_project_files")
    let s:AdaBlockStart = '^\s*\(if\>\|while\>\|else\>\|elsif\>\|loop\>\|for\>.*\<\(loop\|use\)\>\|declare\>\|begin\>\|type\>.*\<is\>[^;]*$\|\(type\>.*\)\=\<record\>\|procedure\>\|function\>\|accept\>\|do\>\|task\>\|package\>\|project\>\|then\>\|when\>\|is\>\)'
diff --git a/runtime/indent/python.vim b/runtime/indent/python.vim
index 838865f..54ed123 100644
--- a/runtime/indent/python.vim
+++ b/runtime/indent/python.vim
@@ -2,15 +2,13 @@
 " Language:		Python
 " Maintainer:		Bram Moolenaar <Bram@vim.org>
 " Original Author:	David Bustos <bustos@caltech.edu>
-" Last Change:		2012 Apr 30
+" Last Change:		2012 May 01
 
 " Only load this indent file when no other was loaded.
 if exists("b:did_indent")
   finish
 endif
 let b:did_indent = 1
-let s:keepcpo= &cpo
-set cpo&vim
 
 " Some preliminary settings
 setlocal nolisp		" Make sure lisp indenting doesn't supersede us
@@ -23,6 +21,8 @@
 if exists("*GetPythonIndent")
   finish
 endif
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Come here when loading the script the first time.
 
diff --git a/runtime/lang/menu_af_af.latin1.vim b/runtime/lang/menu_af_af.latin1.vim
index 7b16b0f..46331e7 100644
--- a/runtime/lang/menu_af_af.latin1.vim
+++ b/runtime/lang/menu_af_af.latin1.vim
@@ -1,6 +1,6 @@
 " Menu Translations:	Afrikaas
 " Maintainer:		Danie Roux <droux@tuks.co.za>
-" Last Change:		2012 Apr 30
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -153,5 +153,5 @@
 menutrans &Highlight\ test	Toets\ die\ verligting
 menutrans &Convert\ to\ HTML	Verwissel\ na\ HTML
 
-let s:keepcpo= &cpo
-set cpo&vim
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_ca_es.latin1.vim b/runtime/lang/menu_ca_es.latin1.vim
index c78e173..1d77dc9 100644
--- a/runtime/lang/menu_ca_es.latin1.vim
+++ b/runtime/lang/menu_ca_es.latin1.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " The translations below are in latin1, but they work for cp1252,
 " iso-8859-15 without conversion as well.
@@ -311,3 +313,5 @@
 menutrans Set\ '&syntax'\ only		Només\ el\ ressalt\ de\ sintaxi
 menutrans Set\ '&filetype'\ too		Carrega\ també\ els\ plugins
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_chinese_gb.936.vim b/runtime/lang/menu_chinese_gb.936.vim
index 193826b..e636a42 100644
--- a/runtime/lang/menu_chinese_gb.936.vim
+++ b/runtime/lang/menu_chinese_gb.936.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding cp936
 
@@ -261,3 +263,6 @@
 menutrans &Convert\ to\ HTML		ת»»³É\ HTML(&C)
 menutrans Set\ '&syntax'\ only		½öÉ趨\ 'syntax'(&S)
 menutrans Set\ '&filetype'\ too		Ò²É趨\ 'filetype'(&F)
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_chinese_taiwan.950.vim b/runtime/lang/menu_chinese_taiwan.950.vim
index 60dc2a7..7631e3e 100644
--- a/runtime/lang/menu_chinese_taiwan.950.vim
+++ b/runtime/lang/menu_chinese_taiwan.950.vim
@@ -1,6 +1,6 @@
 " Menu Translations:	Traditional Chinese
 " Translated By:	Hung-Te Lin	<piaip@csie.ntu.edu.tw>
-" Last Change:		2005/01/28 02:51:38
+" Last Change:		2012 May 01
 
 " {{{ Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -8,6 +8,8 @@
 endif
 let did_menu_trans = 1
 " }}}
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding cp950
 
@@ -282,4 +284,7 @@
 endif
 " }}}
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:foldmethod=marker:nowrap:foldcolumn=2:foldlevel=1
diff --git a/runtime/lang/menu_cs_cz.iso_8859-2.vim b/runtime/lang/menu_cs_cz.iso_8859-2.vim
index a5bc82e..88cf7e2 100644
--- a/runtime/lang/menu_cs_cz.iso_8859-2.vim
+++ b/runtime/lang/menu_cs_cz.iso_8859-2.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding ISO-8859-2
 
@@ -262,3 +264,6 @@
   endfun
 endif
 " }}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_czech_czech_republic.1250.vim b/runtime/lang/menu_czech_czech_republic.1250.vim
index 4f21e89..ebaab9b 100644
--- a/runtime/lang/menu_czech_czech_republic.1250.vim
+++ b/runtime/lang/menu_czech_czech_republic.1250.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding cp1250
 
@@ -262,3 +264,6 @@
   endfun
 endif
 " }}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_czech_czech_republic.ascii.vim b/runtime/lang/menu_czech_czech_republic.ascii.vim
index f2faec9..7ac8c34 100644
--- a/runtime/lang/menu_czech_czech_republic.ascii.vim
+++ b/runtime/lang/menu_czech_czech_republic.ascii.vim
@@ -9,8 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
-
-
+let s:keepcpo= &cpo
+set cpo&vim
 
 " {{{ File menu
 menutrans &File				&Soubor
@@ -262,3 +262,6 @@
   endfun
 endif
 " }}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_de_de.latin1.vim b/runtime/lang/menu_de_de.latin1.vim
index 6bfc072..70feb74 100644
--- a/runtime/lang/menu_de_de.latin1.vim
+++ b/runtime/lang/menu_de_de.latin1.vim
@@ -10,6 +10,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " The translations below are in latin1, but they work for cp1252 and
 " iso-8859-15 without conversion as well.
@@ -302,3 +304,6 @@
 let g:menutrans_textwidth_dialog = "Geben Sie eine neue Text-Breite ein (oder 0, um die Formatierung abzuschalten)"
 let g:menutrans_fileformat_dialog = "Wählen Sie ein Datei-Format aus"
 " }}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_eo.utf-8.vim b/runtime/lang/menu_eo.utf-8.vim
index 761ae0b..7e363f9 100644
--- a/runtime/lang/menu_eo.utf-8.vim
+++ b/runtime/lang/menu_eo.utf-8.vim
@@ -1,12 +1,14 @@
 " Menu Translations:	Esperanto
 " Maintainer:		Dominique PELLE <dominique.pelle@free.fr>
-" Last Change:		2008 Mar 01
+" Last Change:		2012 May 01
 " 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -455,3 +457,6 @@
 menutrans Co&lor\ test				Testo\ de\ &koloroj
 menutrans &Highlight\ test			Testo\ de\ &emfazo
 menutrans &Convert\ to\ HTML			Konverti\ al\ &HTML
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_es_es.latin1.vim b/runtime/lang/menu_es_es.latin1.vim
index b943e23..97f38a7 100644
--- a/runtime/lang/menu_es_es.latin1.vim
+++ b/runtime/lang/menu_es_es.latin1.vim
@@ -2,7 +2,7 @@
 " Previous translator:	Alejandro López-Valencia <dradul@users.sourceforge.net>
 " Last translator:	Omar Campagne Polaino <ocampagne@gmail.com>
 " Version:		7.2.245
-" Last Change:		2009 Sep 03
+" Last Change:		2012 May 01
 "
 
 " Quit when menu translations have already been done.
@@ -10,6 +10,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " The translations below are in latin1, but they work for cp1252,
 " iso-8859-15 without conversion as well.
@@ -316,3 +318,6 @@
 
 " Find Help dialog text
 let g:menutrans_help_dialog = "Introduzca un nombre de comando o palabra para obtener ayuda;\n\nAnteponga i_ para comandos de entrada (e.g.: i_CTRL-X)\nAnteponga c_ para comandos de la línea de comandos (e.g.: c_<Del>)\nAnteponga ` para un nombre de opción (e.g.: `shiftwidth`)"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_fi_fi.latin1.vim b/runtime/lang/menu_fi_fi.latin1.vim
index 1f1f507..6a2c1e9 100644
--- a/runtime/lang/menu_fi_fi.latin1.vim
+++ b/runtime/lang/menu_fi_fi.latin1.vim
@@ -1,12 +1,14 @@
 " Menu Translations:	Finnish
 " Maintainer:		Flammie Pirinen <flammie@iki.fi>
-" Last Change:		2007 Sep 04
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Translations should be in latin1, if it requires latin9 or even unicode,
 " change this:
@@ -470,4 +472,7 @@
   tmenu ToolBar.FindHelp			Etsi ohjeesta
 endfun
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim: set fileencoding=latin1
diff --git a/runtime/lang/menu_fr_fr.latin1.vim b/runtime/lang/menu_fr_fr.latin1.vim
index e8881bd..c4b63c7 100644
--- a/runtime/lang/menu_fr_fr.latin1.vim
+++ b/runtime/lang/menu_fr_fr.latin1.vim
@@ -2,13 +2,15 @@
 " Maintainer:		Adrien Beau <version.francaise@free.fr>
 " First Version:	Francois Thunus <thunus@systran.fr>
 " Last Modification:    David Blanchet <david.blanchet@free.fr>
-" Last Change:		2006 Apr 30
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " The translations below are in latin1, but they work for cp1252 and
 " iso-8859-15 without conversion as well.
@@ -466,3 +468,6 @@
 menutrans Co&lor\ test				Tester\ les\ co&uleurs
 menutrans &Highlight\ test			Tester\ les\ g&roupes\ de\ surbrillance
 menutrans &Convert\ to\ HTML			Con&vertir\ en\ HTML
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_hu_hu.iso_8859-2.vim b/runtime/lang/menu_hu_hu.iso_8859-2.vim
index d3fafce..c7821d2 100644
--- a/runtime/lang/menu_hu_hu.iso_8859-2.vim
+++ b/runtime/lang/menu_hu_hu.iso_8859-2.vim
@@ -1,7 +1,7 @@
 " Menu Translations:	Hungarian (Magyar)
 " Original Translation:	Zoltán Árpádffy
 " Maintained By:	Kontra Gergely <kgergely@mcl.hu>
-" Last Change:		2003 May 31
+" Last Change:		2012 May 01
 " I'm working on defining (unaccented) hotkeys for everything.
 " I want to remove y and z hotkeys, because on the hungarian keymap they're at
 " a differrent place.
@@ -27,6 +27,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding iso-8859-2
 
@@ -256,3 +258,6 @@
 let g:menutrans_tags_dialog = "Írd be a tag fájl lehetséges elérési útjait, vesszõvel elválasztva"
 let g:menutrans_textwidth_dialog = "Írd be a szöveg szélességét (0 = formázás kikapcsolva)"
 let g:menutrans_fileformat_dialog = "Válaszd ki a fájl formátumát"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_hu_hu.utf-8.vim b/runtime/lang/menu_hu_hu.utf-8.vim
index 83a4dca..f3adf91 100644
--- a/runtime/lang/menu_hu_hu.utf-8.vim
+++ b/runtime/lang/menu_hu_hu.utf-8.vim
@@ -1,7 +1,7 @@
 " Menu Translations:	Hungarian (Magyar)
 " Original Translation:	Zoltán Árpádffy
 " Maintained By:	Kontra Gergely <kgergely@mcl.hu>
-" Last Change:		2004 Jun 10
+" Last Change:		2012 May 01
 "
 " This file was converted from menu_hu_hu.iso_8859-2.vim.  See there for
 " remarks.
@@ -11,6 +11,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -240,3 +242,6 @@
 let g:menutrans_tags_dialog = "Írd be a tag fájl lehetséges elérési útjait, vesszővel elválasztva"
 let g:menutrans_textwidth_dialog = "Írd be a szöveg szélességét (0 = formázás kikapcsolva)"
 let g:menutrans_fileformat_dialog = "Válaszd ki a fájl formátumát"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_it_it.latin1.vim b/runtime/lang/menu_it_it.latin1.vim
index 5a87bf0..092136b 100644
--- a/runtime/lang/menu_it_it.latin1.vim
+++ b/runtime/lang/menu_it_it.latin1.vim
@@ -2,13 +2,15 @@
 " Maintainer:		Antonio Colombo <azc100@gmail.com>
 "			Vlad Sandrini <vlad.gently@gmail.com>
 "			Luciano Montanaro <mikelima@cirulla.net>
-" Last Change:	2010 Ago 13
+" Last Change:	2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding iso-8859-1
 
@@ -348,4 +350,7 @@
   endfun
 endif
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim: set sw=2 :
diff --git a/runtime/lang/menu_ja_jp.euc-jp.vim b/runtime/lang/menu_ja_jp.euc-jp.vim
index 16b7eee..fcc49d6 100644
--- a/runtime/lang/menu_ja_jp.euc-jp.vim
+++ b/runtime/lang/menu_ja_jp.euc-jp.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding euc-jp
 
@@ -334,7 +336,8 @@
   an 10.396.120.130 &File.¥¨¥ó¥³¡¼¥É»ØÄê(&E)\.\.\..Êݸ(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
 endif
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " filler to avoid the line above being recognized as a modeline
 " filler
-" filler
-" filler
diff --git a/runtime/lang/menu_ja_jp.utf-8.vim b/runtime/lang/menu_ja_jp.utf-8.vim
index d54dfd5..dc52872 100644
--- a/runtime/lang/menu_ja_jp.utf-8.vim
+++ b/runtime/lang/menu_ja_jp.utf-8.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -334,7 +336,8 @@
   an 10.396.120.130 &File.エンコード指定(&E)\.\.\..保存(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
 endif
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " filler to avoid the line above being recognized as a modeline
 " filler
-" filler
-" filler
diff --git a/runtime/lang/menu_japanese_japan.932.vim b/runtime/lang/menu_japanese_japan.932.vim
index 9787b9b..05cadd4 100644
--- a/runtime/lang/menu_japanese_japan.932.vim
+++ b/runtime/lang/menu_japanese_japan.932.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding cp932
 
@@ -334,7 +336,8 @@
   an 10.396.120.130 &File.ƒGƒ“ƒR[ƒhŽw’è(&E)\.\.\..•Û‘¶(&S)\.\.\..UTF-8(&8)<Tab>fenc=utf-8 :set fenc=utf-8 \| w<CR>
 endif
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " filler to avoid the line above being recognized as a modeline
 " filler
-" filler
-" filler
diff --git a/runtime/lang/menu_ko_kr.euckr.vim b/runtime/lang/menu_ko_kr.euckr.vim
index 84be04d..3816384 100644
--- a/runtime/lang/menu_ko_kr.euckr.vim
+++ b/runtime/lang/menu_ko_kr.euckr.vim
@@ -1,12 +1,14 @@
 " Menu Translations:	Korean
 " Maintainer:		SungHyun Nam <goweol@gmail.com>
-" Last Change:		2011 Mar 22
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding euc-kr
 
@@ -259,3 +261,5 @@
 menutrans &Highlight\ test	Highlight\ ½ÃÇè(&H)
 menutrans &Convert\ to\ HTML	HTML·Î\ º¯È¯(&C)
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_ko_kr.utf-8.vim b/runtime/lang/menu_ko_kr.utf-8.vim
index 93f8551..d036853 100644
--- a/runtime/lang/menu_ko_kr.utf-8.vim
+++ b/runtime/lang/menu_ko_kr.utf-8.vim
@@ -1,12 +1,14 @@
 " Menu Translations:	Korean
 " Maintainer:		SungHyun Nam <goweol@gmail.com>
-" Last Change:		2011 Mar 22
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -259,3 +261,5 @@
 menutrans &Highlight\ test	Highlight\ 시험(&H)
 menutrans &Convert\ to\ HTML	HTML로\ 변환(&C)
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_nl_nl.latin1.vim b/runtime/lang/menu_nl_nl.latin1.vim
index d7f75f2..e1d4506 100644
--- a/runtime/lang/menu_nl_nl.latin1.vim
+++ b/runtime/lang/menu_nl_nl.latin1.vim
@@ -1,12 +1,14 @@
 " Menu Translations:	Nederlands
 " Maintainer:		Bram Moolenaar
-" Last Change:	2004 May 05
+" Last Change:	2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " The translations below are in latin1, but they work for cp1252 and
 " iso-8859-15 without conversion as well.
@@ -238,3 +240,6 @@
 let g:menutrans_tags_dialog = "Typ namen van tag bestanden.\nGebruik commas tussen de namen."
 let g:menutrans_textwidth_dialog = "Typ de nieuwe tekst breedte (0 om formatteren uit the schakelen): "
 let g:menutrans_fileformat_dialog = "Selecteer formaat voor het schrijven van het bestand"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_no_no.latin1.vim b/runtime/lang/menu_no_no.latin1.vim
index f27b05c..a64e343 100644
--- a/runtime/lang/menu_no_no.latin1.vim
+++ b/runtime/lang/menu_no_no.latin1.vim
@@ -1,6 +1,6 @@
 " Menu Translations:	Norwegian / Norsk (Bokmål)
 " Maintainer:		Øyvind A. Holm <sunny@sunbase.org>
-" Last Change:		2004-05-16 20:00:52 +0200
+" Last Change:		2012 May 01
 " menu_no_no.latin1.vim 289 2004-05-16 18:00:52Z sunny
 
 " Quit when menu translations have already been done.
@@ -8,6 +8,8 @@
 	finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " The translations below are in ISO-8859-1, but they work for ISO-8859-15 and
 " CP1252 without conversion as well.
@@ -229,5 +231,8 @@
 	let g:menutrans_textwidth_dialog = "Velg ny tekstbredde (0 for å forhindre formatering): "
 	let g:menutrans_fileformat_dialog = "Velg filformat som filen skal lagres med"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 "    vim: set ts=8 sw=8 :
 " vim600: set fdm=indent :
diff --git a/runtime/lang/menu_pl_pl.iso_8859-2.vim b/runtime/lang/menu_pl_pl.iso_8859-2.vim
index 021e1a7..7bb7294 100644
--- a/runtime/lang/menu_pl_pl.iso_8859-2.vim
+++ b/runtime/lang/menu_pl_pl.iso_8859-2.vim
@@ -8,6 +8,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding iso-8859-2
 
@@ -285,3 +287,6 @@
 let g:menutrans_textwidth_dialog = "Wprowad¼ now± szeroko¶æ tekstu (0 wy³±cza przewijanie): "
 let g:menutrans_fileformat_dialog = "Wybierz format w którym ten plik ma byæ zapisany"
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Anuluj"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_pl_pl.utf-8.vim b/runtime/lang/menu_pl_pl.utf-8.vim
index 1d347dc..871b4fa 100644
--- a/runtime/lang/menu_pl_pl.utf-8.vim
+++ b/runtime/lang/menu_pl_pl.utf-8.vim
@@ -8,6 +8,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -285,3 +287,6 @@
 let g:menutrans_textwidth_dialog = "Wprowadź nową szerokość tekstu (0 wyłącza przewijanie): "
 let g:menutrans_fileformat_dialog = "Wybierz format w którym ten plik ma być zapisany"
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Anuluj"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_polish_poland.1250.vim b/runtime/lang/menu_polish_poland.1250.vim
index 398b18d..9dde00d 100644
--- a/runtime/lang/menu_polish_poland.1250.vim
+++ b/runtime/lang/menu_polish_poland.1250.vim
@@ -8,6 +8,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding cp1250
 
@@ -285,3 +287,6 @@
 let g:menutrans_textwidth_dialog = "WprowadŸ now¹ szerokoœæ tekstu (0 wy³¹cza przewijanie): "
 let g:menutrans_fileformat_dialog = "Wybierz format w którym ten plik ma byæ zapisany"
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Anuluj"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_pt_br.vim b/runtime/lang/menu_pt_br.vim
index 28a62b7..f4980ef 100644
--- a/runtime/lang/menu_pt_br.vim
+++ b/runtime/lang/menu_pt_br.vim
@@ -1,6 +1,6 @@
 " Menu Translations: Português do Brasil
 " Maintainer: José de Paula <jose@infoviaweb.com>
-" Last Change: 2006-09-19 02:30:00-03:00
+" Last Change: 2012 May 01
 "
 
 " Quit when menu translations have already been done.
@@ -8,6 +8,8 @@
 	finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Translations in latin1 (ISO-8859-1), and should work in
 " latin9 (ISO-8859-15)
@@ -283,3 +285,6 @@
 
 " Find Help dialog text
 let g:menutrans_help_dialog = "Digite um comando ou palavra para obter ajuda;\n\nAnteponha i_ para comandos de entrada (ex.: i_CTRL-X)\nAnteponha c_ para comandos da linha de comandos (ex.: c_<Del>)\nAnteponha ` para um nome de opção (ex.: `shiftwidth`)"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_pt_pt.vim b/runtime/lang/menu_pt_pt.vim
index 28b9726..783be0b 100644
--- a/runtime/lang/menu_pt_pt.vim
+++ b/runtime/lang/menu_pt_pt.vim
@@ -7,6 +7,8 @@
 	finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Translations in latin1 (ISO-8859-1), and should work in
 " latin9 (ISO-8859-15)
@@ -262,3 +264,6 @@
 
 " Find Help dialog text
 let g:menutrans_help_dialog = "Digite um comando ou palavra para obter ajuda;\n\nAnteponha i_ para comandos de entrada (ex.: i_CTRL-X)\nAnteponha c_ para comandos da linha de comandos (ex.: c_<Del>)\nAnteponha ` para um nome de opção (ex.: `shiftwidth`)"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_ru_ru.koi8-r.vim b/runtime/lang/menu_ru_ru.koi8-r.vim
index 37cd935..0d4fbaa 100644
--- a/runtime/lang/menu_ru_ru.koi8-r.vim
+++ b/runtime/lang/menu_ru_ru.koi8-r.vim
@@ -16,6 +16,8 @@
    finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding koi8-r
 
@@ -294,3 +296,6 @@
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nï&ÔÍÅÎÁ"
 "
 let menutrans_no_file = "[îÅÔ ÆÁÊÌÁ]"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_ru_ru.vim b/runtime/lang/menu_ru_ru.vim
index b726152..23a111a 100644
--- a/runtime/lang/menu_ru_ru.vim
+++ b/runtime/lang/menu_ru_ru.vim
@@ -16,6 +16,8 @@
    finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -294,3 +296,6 @@
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\nО&тмена"
 "
 let menutrans_no_file = "[Нет файла]"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sk_sk.iso_8859-2.vim b/runtime/lang/menu_sk_sk.iso_8859-2.vim
index bace7d2..69de4e7 100644
--- a/runtime/lang/menu_sk_sk.iso_8859-2.vim
+++ b/runtime/lang/menu_sk_sk.iso_8859-2.vim
@@ -1,12 +1,14 @@
 " Menu Translations:	Slovak
 " Translated By:	Martin Lacko <lacko@host.sk>
-" Last Change:		2003 Mar 30
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding iso-8859-2
 
@@ -230,3 +232,6 @@
 menutrans Co&lor\ test		Test\ &farieb
 menutrans &Highlight\ test	&Test\ zvýrazòovania
 menutrans &Convert\ to\ HTML	&Previes»\ do\ HTML
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sl_si.cp1250.vim b/runtime/lang/menu_sl_si.cp1250.vim
index 23f668c..8999b15 100644
--- a/runtime/lang/menu_sl_si.cp1250.vim
+++ b/runtime/lang/menu_sl_si.cp1250.vim
@@ -11,6 +11,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding cp1250
 
@@ -292,3 +294,6 @@
 let g:menutrans_fileformat_dialog = "Izberite format datoteke"
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Preklièi"
 " }}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sl_si.latin2.vim b/runtime/lang/menu_sl_si.latin2.vim
index 57d6c89..fd50387 100644
--- a/runtime/lang/menu_sl_si.latin2.vim
+++ b/runtime/lang/menu_sl_si.latin2.vim
@@ -11,6 +11,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding latin2
 
@@ -292,3 +294,6 @@
 let g:menutrans_fileformat_dialog = "Izberite format datoteke"
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Preklièi"
 " }}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sl_si.utf-8.vim b/runtime/lang/menu_sl_si.utf-8.vim
index 306e449..7043e62 100644
--- a/runtime/lang/menu_sl_si.utf-8.vim
+++ b/runtime/lang/menu_sl_si.utf-8.vim
@@ -11,6 +11,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -292,3 +294,6 @@
 let g:menutrans_fileformat_dialog = "Izberite format datoteke"
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Prekliči"
 " }}}
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_slovak_slovak_republic.1250.vim b/runtime/lang/menu_slovak_slovak_republic.1250.vim
index 1df513d..cfc6078 100644
--- a/runtime/lang/menu_slovak_slovak_republic.1250.vim
+++ b/runtime/lang/menu_slovak_slovak_republic.1250.vim
@@ -1,12 +1,14 @@
 " Menu Translations:	Slovak
 " Translated By:	Martin Lacko <lacko@host.sk>
-" Last Change:		2006 Jun 17
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding cp1250
 
@@ -230,3 +232,6 @@
 menutrans Co&lor\ test		Test\ &farieb
 menutrans &Highlight\ test	&Test\ zvýrazòovania
 menutrans &Convert\ to\ HTML	&Previes\ do\ HTML
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sr_rs.ascii.vim b/runtime/lang/menu_sr_rs.ascii.vim
index 14a9026..8a12dad 100644
--- a/runtime/lang/menu_sr_rs.ascii.vim
+++ b/runtime/lang/menu_sr_rs.ascii.vim
@@ -7,6 +7,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " Help menu
 menutrans &Help		      Pomo&c
@@ -256,3 +258,6 @@
 let g:menutrans_fileformat_dialog = "Izaberite vrstu datoteke"
 
 let menutrans_no_file = "[Nema datoteke]"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sr_rs.iso_8859-2.vim b/runtime/lang/menu_sr_rs.iso_8859-2.vim
index 992124c..f4b8c68 100644
--- a/runtime/lang/menu_sr_rs.iso_8859-2.vim
+++ b/runtime/lang/menu_sr_rs.iso_8859-2.vim
@@ -7,6 +7,9 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
+
 scriptencoding iso8859-2
 
 " Help menu
@@ -257,3 +260,6 @@
 let g:menutrans_fileformat_dialog = "Izaberite vrstu datoteke"
 
 let menutrans_no_file = "[Nema datoteke]"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sr_rs.iso_8859-5.vim b/runtime/lang/menu_sr_rs.iso_8859-5.vim
index e4d322d..dd3b436 100644
--- a/runtime/lang/menu_sr_rs.iso_8859-5.vim
+++ b/runtime/lang/menu_sr_rs.iso_8859-5.vim
@@ -7,6 +7,9 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
+
 scriptencoding iso8859-5
 
 " Help menu
@@ -257,3 +260,6 @@
 let g:menutrans_fileformat_dialog = "¸×ÐÑÕàØâÕ Òàáâã ÔÐâÞâÕÚÕ"
 
 let menutrans_no_file = "[½ÕÜÐ ÔÐâÞâÕÚÕ]"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_sr_rs.utf-8.vim b/runtime/lang/menu_sr_rs.utf-8.vim
index 85f1491..b9e536d 100644
--- a/runtime/lang/menu_sr_rs.utf-8.vim
+++ b/runtime/lang/menu_sr_rs.utf-8.vim
@@ -7,6 +7,9 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
+
 scriptencoding utf-8
 
 " Help menu
@@ -258,4 +261,7 @@
 
 let menutrans_no_file = "[Нема датотеке]"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim: tw=0 keymap=serbian
diff --git a/runtime/lang/menu_sv_se.latin1.vim b/runtime/lang/menu_sv_se.latin1.vim
index 8935e0d..2e37485 100644
--- a/runtime/lang/menu_sv_se.latin1.vim
+++ b/runtime/lang/menu_sv_se.latin1.vim
@@ -1,12 +1,14 @@
 " Menu Translations:    Swedish
 " Maintainer:		Johan Svedberg <johan@svedberg.com>
-" Last Change:		2006 Apr 13
+" Last Change:		2012 May 01
 
 " Quit when menu translations have already been done.
 if exists("did_menu_trans")
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " The translations below are in latin1, but they work for cp1252 and
 " iso-8859-15 without conversion as well.
@@ -248,3 +250,6 @@
 let g:menutrans_tags_dialog = "Skriv in namn på taggfiler.\nSeparera namn med komma."
 let g:menutrans_textwidth_dialog = "Välj ny textbredd (0 för att förhindra formatering): "
 let g:menutrans_fileformat_dialog = "Välj filformat som filen ska sparas med"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_uk_ua.cp1251.vim b/runtime/lang/menu_uk_ua.cp1251.vim
index a517ecd..2e751c8 100644
--- a/runtime/lang/menu_uk_ua.cp1251.vim
+++ b/runtime/lang/menu_uk_ua.cp1251.vim
@@ -12,6 +12,9 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
+
 scriptencoding cp1251
 
 " Help menu
@@ -244,3 +247,5 @@
 let g:menutrans_textwidth_dialog = "Âêàæ³òü íîâó øèðèíó òåêñòó (0 äëÿ â³äì³íè ôîìàòóâàííÿ)"
 let g:menutrans_fileformat_dialog = "Âèáåð³òü ôîðìàò ôàéëó"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_uk_ua.koi8-u.vim b/runtime/lang/menu_uk_ua.koi8-u.vim
index 6284145..c44700e 100644
--- a/runtime/lang/menu_uk_ua.koi8-u.vim
+++ b/runtime/lang/menu_uk_ua.koi8-u.vim
@@ -12,6 +12,9 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
+
 scriptencoding koi8-u
 
 " Help menu
@@ -244,3 +247,5 @@
 let g:menutrans_textwidth_dialog = "÷ËÁÖ¦ÔØ ÎÏ×Õ ÛÉÒÉÎÕ ÔÅËÓÔÕ (0 ÄÌÑ ×¦ÄͦÎÉ ÆÏÍÁÔÕ×ÁÎÎÑ)"
 let g:menutrans_fileformat_dialog = "÷ÉÂÅÒ¦ÔØ ÆÏÒÍÁÔ ÆÁÊÌÕ"
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_vi_vn.vim b/runtime/lang/menu_vi_vn.vim
index 4b2b21f..9fbd2c6 100644
--- a/runtime/lang/menu_vi_vn.vim
+++ b/runtime/lang/menu_vi_vn.vim
@@ -14,6 +14,8 @@
    finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -327,3 +329,6 @@
 let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Hủy bỏ"
 "
 let menutrans_no_file = "[không có tập tin]"
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_zh_cn.gb2312.vim b/runtime/lang/menu_zh_cn.gb2312.vim
index 3ec825c..a12d94d 100644
--- a/runtime/lang/menu_zh_cn.gb2312.vim
+++ b/runtime/lang/menu_zh_cn.gb2312.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 " This causes trouble for a broken iconv (symptom: last character is always
 " ??).  Without this it works fine anyway, because gbk/cp936 is a superset of
@@ -264,3 +266,6 @@
 menutrans &Convert\ to\ HTML		ת»»³É\ HTML(&C)
 menutrans Set\ '&syntax'\ only		½öÉ趨\ 'syntax'(&S)
 menutrans Set\ '&filetype'\ too		Ò²É趨\ 'filetype'(&F)
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_zh_cn.utf-8.vim b/runtime/lang/menu_zh_cn.utf-8.vim
index 04f192f..956363d 100644
--- a/runtime/lang/menu_zh_cn.utf-8.vim
+++ b/runtime/lang/menu_zh_cn.utf-8.vim
@@ -9,6 +9,8 @@
   finish
 endif
 let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
 
 scriptencoding utf-8
 
@@ -261,3 +263,6 @@
 menutrans &Convert\ to\ HTML		转换成\ HTML(&C)
 menutrans Set\ '&syntax'\ only		仅设定\ 'syntax'(&S)
 menutrans Set\ '&filetype'\ too		也设定\ 'filetype'(&F)
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/lang/menu_zh_tw.utf-8.vim b/runtime/lang/menu_zh_tw.utf-8.vim
index 97c56a3..7bef83c 100644
--- a/runtime/lang/menu_zh_tw.utf-8.vim
+++ b/runtime/lang/menu_zh_tw.utf-8.vim
@@ -1,6 +1,6 @@
 " Menu Translations:	Traditional Chinese
 " Translated By:	Hung-Te Lin	<piaip@csie.ntu.edu.tw>
-" Last Change:		2005/01/28 02:51:38
+" Last Change:		2012 May 01
 
 " {{{ Quit when menu translations have already been done.
 if exists("did_menu_trans")
@@ -9,6 +9,9 @@
 let did_menu_trans = 1
 " }}}
 
+let s:keepcpo= &cpo
+set cpo&vim
+
 scriptencoding utf-8
 
 " {{{ Help menu: complete
@@ -282,4 +285,7 @@
 endif
 " }}}
 
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
 " vim:foldmethod=marker:nowrap:foldcolumn=2:foldlevel=1