updated for version 7.2c-000
diff --git a/runtime/ftplugin/a2ps.vim b/runtime/ftplugin/a2ps.vim
index a596fc8..6653351 100644
--- a/runtime/ftplugin/a2ps.vim
+++ b/runtime/ftplugin/a2ps.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         a2ps(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*Include:
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/alsaconf.vim b/runtime/ftplugin/alsaconf.vim
index 0ef6991..5d763c8 100644
--- a/runtime/ftplugin/alsaconf.vim
+++ b/runtime/ftplugin/alsaconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         alsaconf(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/arch.vim b/runtime/ftplugin/arch.vim
index 2da9e40..71d831e 100644
--- a/runtime/ftplugin/arch.vim
+++ b/runtime/ftplugin/arch.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         GNU Arch inventory file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/automake.vim b/runtime/ftplugin/automake.vim
index c48ea13..20b06af 100644
--- a/runtime/ftplugin/automake.vim
+++ b/runtime/ftplugin/automake.vim
@@ -1,10 +1,16 @@
 " Vim filetype plugin file
 " Language:         Automake
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 runtime! ftplugin/make.vim ftplugin/make_*.vim ftplugin/make/*.vim
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/bdf.vim b/runtime/ftplugin/bdf.vim
index a010c2c..120c5df 100644
--- a/runtime/ftplugin/bdf.vim
+++ b/runtime/ftplugin/bdf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         BDF font definition
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=b:COMMENT commentstring=COMMENT\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/calendar.vim b/runtime/ftplugin/calendar.vim
index ca56511..6f117e3 100644
--- a/runtime/ftplugin/calendar.vim
+++ b/runtime/ftplugin/calendar.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         calendar(1) input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring& include&
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/cdrdaoconf.vim b/runtime/ftplugin/cdrdaoconf.vim
index 86796eb..557fd82 100644
--- a/runtime/ftplugin/cdrdaoconf.vim
+++ b/runtime/ftplugin/cdrdaoconf.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-09-18
+" Latest Revision:  2007-12-04
 
 if exists("b:did_ftplugin")
   finish
@@ -14,5 +14,5 @@
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
-let s:cpo_save = &cpo
-set cpo&vim
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/conf.vim b/runtime/ftplugin/conf.vim
index 8e0b7f8..1b110e4 100644
--- a/runtime/ftplugin/conf.vim
+++ b/runtime/ftplugin/conf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         generic configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/context.vim b/runtime/ftplugin/context.vim
index c74be07..1c7d678 100644
--- a/runtime/ftplugin/context.vim
+++ b/runtime/ftplugin/context.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:         ConTeXt typesetting engine
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
@@ -29,8 +29,7 @@
   let b:match_skip = 'r:\\\@<!\%(\\\\\)*%'
   let b:match_words = '(:),\[:],{:},\\(:\\),\\\[:\\],' .
         \ '\\start\(\a\+\):\\stop\1'
-endif " exists("loaded_matchit")
-
+endif
 
 let &cpo = s:cpo_save
 unlet s:cpo_save
diff --git a/runtime/ftplugin/crm.vim b/runtime/ftplugin/crm.vim
index 8ec42a9..e86e683 100644
--- a/runtime/ftplugin/crm.vim
+++ b/runtime/ftplugin/crm.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         CRM114
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/css.vim b/runtime/ftplugin/css.vim
index d80582e..43d1edf 100644
--- a/runtime/ftplugin/css.vim
+++ b/runtime/ftplugin/css.vim
@@ -1,13 +1,16 @@
 " Vim filetype plugin file
 " Language:         CSS
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-05-08
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo< ofu<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
@@ -15,3 +18,6 @@
 setlocal omnifunc=csscomplete#CompleteCSS
 
 let &l:include = '^\s*@import\s\+\%(url(\)\='
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/cvsrc.vim b/runtime/ftplugin/cvsrc.vim
index 2a49f8d..c4105305 100644
--- a/runtime/ftplugin/cvsrc.vim
+++ b/runtime/ftplugin/cvsrc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         cvs(1) RC file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/denyhosts.vim b/runtime/ftplugin/denyhosts.vim
index 86796eb..557fd82 100644
--- a/runtime/ftplugin/denyhosts.vim
+++ b/runtime/ftplugin/denyhosts.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-09-18
+" Latest Revision:  2007-12-04
 
 if exists("b:did_ftplugin")
   finish
@@ -14,5 +14,5 @@
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
-let s:cpo_save = &cpo
-set cpo&vim
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dictconf.vim b/runtime/ftplugin/dictconf.vim
index 6ebd94a..659046c 100644
--- a/runtime/ftplugin/dictconf.vim
+++ b/runtime/ftplugin/dictconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         dict(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dictdconf.vim b/runtime/ftplugin/dictdconf.vim
index bda8782..ee738c5 100644
--- a/runtime/ftplugin/dictdconf.vim
+++ b/runtime/ftplugin/dictdconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         dictd(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dircolors.vim b/runtime/ftplugin/dircolors.vim
index bdbecc0..3b3d046 100644
--- a/runtime/ftplugin/dircolors.vim
+++ b/runtime/ftplugin/dircolors.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         dircolors(1) input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dosini.vim b/runtime/ftplugin/dosini.vim
index 354b093..461403c 100644
--- a/runtime/ftplugin/dosini.vim
+++ b/runtime/ftplugin/dosini.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Configuration File (ini file) for MSDOS/MS Windows
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-08-23
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:; commentstring=;\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/dtd.vim b/runtime/ftplugin/dtd.vim
index 9911187..3b15bda 100644
--- a/runtime/ftplugin/dtd.vim
+++ b/runtime/ftplugin/dtd.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	dtd
 " Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
+" Last Changed: 30 Jun 2008
 " URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
@@ -13,6 +13,12 @@
 set cpo-=C
 
 setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
+
+setlocal formatoptions-=t
+if !exists("g:ft_dtd_autocomment") || (g:ft_dtd_autocomment == 1)
+    setlocal formatoptions+=croql
+endif
 
 if exists("loaded_matchit")
     let b:match_words = '<!--:-->,<!:>'
@@ -26,7 +32,7 @@
 endif
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal commentstring<" .
+let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
 		\     " | unlet! b:matchwords b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/elinks.vim b/runtime/ftplugin/elinks.vim
index c7c11f6..7d92575 100644
--- a/runtime/ftplugin/elinks.vim
+++ b/runtime/ftplugin/elinks.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         elinks(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/eterm.vim b/runtime/ftplugin/eterm.vim
index df5bf50..e072c63 100644
--- a/runtime/ftplugin/eterm.vim
+++ b/runtime/ftplugin/eterm.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         eterm(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/fetchmail.vim b/runtime/ftplugin/fetchmail.vim
index 174ed44..a0d4650 100644
--- a/runtime/ftplugin/fetchmail.vim
+++ b/runtime/ftplugin/fetchmail.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         fetchmail(1) RC File
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/framescript.vim b/runtime/ftplugin/framescript.vim
new file mode 100644
index 0000000..805401a
--- /dev/null
+++ b/runtime/ftplugin/framescript.vim
@@ -0,0 +1,30 @@
+" Vim ftplugin file
+" Language:         FrameScript
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-19
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo< inc< | unlet! b:matchwords"
+
+setlocal comments=s1:/*,mb:*,ex:*/,:// commentstring=/*\ %s\ */
+setlocal formatoptions-=t formatoptions+=croql
+setlocal include=^\\s*<#Include
+
+if exists("loaded_matchit")
+  let s:not_end = '\c\%(\<End\)\@<!'
+  let b:match_words =
+        \ s:not_end . '\<If\>:\c\<ElseIf\>:\c\<Else\>:\c\<EndIf\>,' .
+        \ s:not_end . '\<Loop\>:\c\<EndLoop\>' .
+        \ s:not_end . '\<Sub\>:\c\<EndSub\>'
+  unlet s:not_end
+endif
+
+let &cpo = s:cpo_save 
+unlet s:cpo_save
diff --git a/runtime/ftplugin/git.vim b/runtime/ftplugin/git.vim
index f8d331f..9ac1aa1 100644
--- a/runtime/ftplugin/git.vim
+++ b/runtime/ftplugin/git.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin
 " Language:	generic git output
 " Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
-" Last Change:	2008 Jun 20
+" Last Change:	2008 Jul 30
 
 " Only do this when not done yet for this buffer
 if (exists("b:did_ftplugin"))
@@ -22,7 +22,7 @@
 
 if exists('*shellescape') && exists('b:git_dir') && b:git_dir != ''
     if b:git_dir =~# '/\.git$' " Not a bare repository
-        let &l:path = escape(fnamemodify(b:git_dir,':t'),'\, ').','.&l:path
+        let &l:path = escape(fnamemodify(b:git_dir,':h'),'\, ').','.&l:path
     endif
     let &l:path = escape(b:git_dir,'\, ').','.&l:path
     let &l:keywordprg = 'git --git-dir='.shellescape(b:git_dir).' show'
diff --git a/runtime/ftplugin/gpg.vim b/runtime/ftplugin/gpg.vim
index d4bed14..5caa1f6 100644
--- a/runtime/ftplugin/gpg.vim
+++ b/runtime/ftplugin/gpg.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         gpg(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/group.vim b/runtime/ftplugin/group.vim
index 447ba18..eef3cd6 100644
--- a/runtime/ftplugin/group.vim
+++ b/runtime/ftplugin/group.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         group(5) user group file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/grub.vim b/runtime/ftplugin/grub.vim
index 162fcd3..21c4e36 100644
--- a/runtime/ftplugin/grub.vim
+++ b/runtime/ftplugin/grub.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         grub(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/haskell.vim b/runtime/ftplugin/haskell.vim
index f5a3a80..144f9f6 100644
--- a/runtime/ftplugin/haskell.vim
+++ b/runtime/ftplugin/haskell.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Haskell
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1fl:{-,mb:-,ex:-},:-- commentstring=--\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/help.vim b/runtime/ftplugin/help.vim
index 46c844c..5c6dac8 100644
--- a/runtime/ftplugin/help.vim
+++ b/runtime/ftplugin/help.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Vim help file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl fo< tw<"
 
 setlocal formatoptions+=tcroql textwidth=78
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/hostconf.vim b/runtime/ftplugin/hostconf.vim
index 86796eb..557fd82 100644
--- a/runtime/ftplugin/hostconf.vim
+++ b/runtime/ftplugin/hostconf.vim
@@ -1,6 +1,6 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-09-18
+" Latest Revision:  2007-12-04
 
 if exists("b:did_ftplugin")
   finish
@@ -14,5 +14,5 @@
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
-let s:cpo_save = &cpo
-set cpo&vim
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/hostsaccess.vim b/runtime/ftplugin/hostsaccess.vim
new file mode 100644
index 0000000..a2f55ac
--- /dev/null
+++ b/runtime/ftplugin/hostsaccess.vim
@@ -0,0 +1,19 @@
+" Vim filetype plugin file
+" Language:         hosts_access(5) control file
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-09
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+let b:undo_ftplugin = "setl com< cms< fo<"
+
+setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/html.vim b/runtime/ftplugin/html.vim
index 4797f4b..6c8607d 100644
--- a/runtime/ftplugin/html.vim
+++ b/runtime/ftplugin/html.vim
@@ -12,8 +12,14 @@
 let s:save_cpo = &cpo
 set cpo-=C
 
-setlocal commentstring=<!--%s-->
 setlocal matchpairs+=<:>
+setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ ,e:-->
+
+if exists("g:ft_html_autocomment") && (g:ft_html_autocomment == 1)
+    setlocal formatoptions-=t formatoptions+=croql
+endif
+
 
 if exists('&omnifunc')
     " Distinguish between HTML versions
@@ -77,7 +83,7 @@
 endif
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc<"
+let b:undo_ftplugin = "setlocal commentstring< matchpairs< omnifunc< comments< formatoptions<" .
     \	" | unlet! b:match_ignorecase b:match_skip b:match_words b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/indent.vim b/runtime/ftplugin/indent.vim
index 2047b1d..0e195b0 100644
--- a/runtime/ftplugin/indent.vim
+++ b/runtime/ftplugin/indent.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         indent(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring&
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/kconfig.vim b/runtime/ftplugin/kconfig.vim
index bb93218..1b10c86 100644
--- a/runtime/ftplugin/kconfig.vim
+++ b/runtime/ftplugin/kconfig.vim
@@ -1,12 +1,18 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-10
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/ld.vim b/runtime/ftplugin/ld.vim
index 544fc0d..31ce5c9 100644
--- a/runtime/ftplugin/ld.vim
+++ b/runtime/ftplugin/ld.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         ld(1) script
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/ commentstring=/*%s*/ include=^\\s*INCLUDE
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/lftp.vim b/runtime/ftplugin/lftp.vim
index e81684c..9e2eeb5 100644
--- a/runtime/ftplugin/lftp.vim
+++ b/runtime/ftplugin/lftp.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         lftp(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/libao.vim b/runtime/ftplugin/libao.vim
index 8845b17..38bd3de 100644
--- a/runtime/ftplugin/libao.vim
+++ b/runtime/ftplugin/libao.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         libao.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/limits.vim b/runtime/ftplugin/limits.vim
index 6b18c83..cd5b7b5 100644
--- a/runtime/ftplugin/limits.vim
+++ b/runtime/ftplugin/limits.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         limits(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/loginaccess.vim b/runtime/ftplugin/loginaccess.vim
index c5cb1b1..7c44f97 100644
--- a/runtime/ftplugin/loginaccess.vim
+++ b/runtime/ftplugin/loginaccess.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         login.access(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/logindefs.vim b/runtime/ftplugin/logindefs.vim
index 431755e..668d08a 100644
--- a/runtime/ftplugin/logindefs.vim
+++ b/runtime/ftplugin/logindefs.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         login.defs(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/m4.vim b/runtime/ftplugin/m4.vim
index 8702584..0ffe0ac 100644
--- a/runtime/ftplugin/m4.vim
+++ b/runtime/ftplugin/m4.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         m4
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:dnl commentstring=dnl\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mailaliases.vim b/runtime/ftplugin/mailaliases.vim
index f52583f..1b10c86 100644
--- a/runtime/ftplugin/mailaliases.vim
+++ b/runtime/ftplugin/mailaliases.vim
@@ -1,12 +1,18 @@
 " Vim filetype plugin file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-03-27
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mailcap.vim b/runtime/ftplugin/mailcap.vim
index df4e994..f4c8c23 100644
--- a/runtime/ftplugin/mailcap.vim
+++ b/runtime/ftplugin/mailcap.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Mailcap configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/manconf.vim b/runtime/ftplugin/manconf.vim
index 69cf6f5..a249a97 100644
--- a/runtime/ftplugin/manconf.vim
+++ b/runtime/ftplugin/manconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         man.conf(5) - man configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mf.vim b/runtime/ftplugin/mf.vim
index e351a13..fd1d3ce 100644
--- a/runtime/ftplugin/mf.vim
+++ b/runtime/ftplugin/mf.vim
@@ -1,14 +1,19 @@
 " Vim filetype plugin file
 " Language:         MetaFont
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
 
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/modconf.vim b/runtime/ftplugin/modconf.vim
index 97102a1..f200e9f 100644
--- a/runtime/ftplugin/modconf.vim
+++ b/runtime/ftplugin/modconf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         modules.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mp.vim b/runtime/ftplugin/mp.vim
index 3709782..316fa9b 100644
--- a/runtime/ftplugin/mp.vim
+++ b/runtime/ftplugin/mp.vim
@@ -1,13 +1,16 @@
 " Vim filetype plugin file
 " Language:         MetaPost
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-07-04
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:% commentstring=%\ %s formatoptions-=t formatoptions+=croql
@@ -20,3 +23,6 @@
     g/^beginfig(\d*);$/s//\='beginfig('.i.');'/ | let i = i + 1
   endfunction
 endif
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/mplayerconf.vim b/runtime/ftplugin/mplayerconf.vim
index e410667..65034a8 100644
--- a/runtime/ftplugin/mplayerconf.vim
+++ b/runtime/ftplugin/mplayerconf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         mplayer(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/muttrc.vim b/runtime/ftplugin/muttrc.vim
index 18b06d8..a109e5d 100644
--- a/runtime/ftplugin/muttrc.vim
+++ b/runtime/ftplugin/muttrc.vim
@@ -8,9 +8,15 @@
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
 
 let &l:include = '^\s*source\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/nanorc.vim b/runtime/ftplugin/nanorc.vim
index 67a2a48..be20d12 100644
--- a/runtime/ftplugin/nanorc.vim
+++ b/runtime/ftplugin/nanorc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         nanorc(5) - GNU nano configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/netrc.vim b/runtime/ftplugin/netrc.vim
index 0f9417a..105a1d3 100644
--- a/runtime/ftplugin/netrc.vim
+++ b/runtime/ftplugin/netrc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         netrc(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/nsis.vim b/runtime/ftplugin/nsis.vim
new file mode 100644
index 0000000..acc2620
--- /dev/null
+++ b/runtime/ftplugin/nsis.vim
@@ -0,0 +1,22 @@
+" Vim ftplugin file
+" Language:         NSIS script
+" Maintainer:       Nikolai Weibull <now@bitwi.se>
+" Latest Revision:  2008-07-09
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+if exists("b:did_ftplugin")
+  finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl com< cms< fo< def< inc<"
+
+setlocal comments=s1:/*,mb:*,ex:*/,b:#,:; commentstring=;\ %s
+setlocal formatoptions-=t formatoptions+=croql
+setlocal define=^\\s*!define\\%(\\%(utc\\)\\=date\\|math\\)\\=
+setlocal include=^\\s*!include\\%(/NONFATAL\\)\\=
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/ocaml.vim b/runtime/ftplugin/ocaml.vim
index 53431c9..7acf493 100644
--- a/runtime/ftplugin/ocaml.vim
+++ b/runtime/ftplugin/ocaml.vim
@@ -5,7 +5,8 @@
 "              Stefano Zacchiroli  <zack@bononia.it>
 "              Vincent Aravantinos <firstname.name@imag.fr>
 " URL:         http://www.ocaml.info/vim/ftplugin/ocaml.vim
-" Last Change: 2007 Sep 09 - Added .annot support for ocamlbuild, python not 
+" Last Change: 2008 Jul 17 - Bugfix related to fnameescape (VA)
+"              2007 Sep 09 - Added .annot support for ocamlbuild, python not 
 "                            needed anymore (VA)
 "              2006 May 01 - Added .annot support for file.whateverext (SZ)
 "	             2006 Apr 11 - Fixed an initialization bug; fixed ASS abbrev (MM)
@@ -16,6 +17,17 @@
 endif
 let b:did_ftplugin=1
 
+" some macro
+if exists('*fnameescape')
+  function! s:Fnameescape(s)
+    return fnameescape(a:s)
+  endfun
+else
+  function! s:Fnameescape(s)
+    return escape(a:s," \t\n*?[{`$\\%#'\"|!<")
+  endfun
+endif
+
 " Error handling -- helps moving where the compiler wants you to go
 let s:cposet=&cpoptions
 set cpo-=C
@@ -71,14 +83,14 @@
   map <LocalLeader>S :call OCaml_switch(1)<CR>
   fun OCaml_switch(newwin)
     if (match(bufname(""), "\\.mli$") >= 0)
-      let fname = substitute(bufname(""), "\\.mli$", ".ml", "")
+      let fname = s:Fnameescape(substitute(bufname(""), "\\.mli$", ".ml", ""))
       if (a:newwin == 1)
         exec "new " . fname
       else
         exec "arge " . fname
       endif
     elseif (match(bufname(""), "\\.ml$") >= 0)
-      let fname = bufname("") . "i"
+      let fname = s:Fnameescape(bufname("")) . "i"
       if (a:newwin == 1)
         exec "new " . fname
       else
@@ -260,6 +272,7 @@
   "      For the moment, the only possible keyword is \"type\"."
   " >>
 
+
 " 1. Finding the annotation file even if we use ocamlbuild
 
     " In:  two strings representing paths
@@ -286,16 +299,16 @@
   function! s:Locate_annotation()
     if !b:annotation_file_located
 
-      silent exe 'cd' expand('%:p:h')
+      silent exe 'cd' s:Fnameescape(expand('%:p:h'))
 
-      let annot_file_name = expand('%:r').'.annot'
+      let annot_file_name = s:Fnameescape(expand('%:r')).'.annot'
 
       " 1st case : the annot file is in the same directory as the buffer (no ocamlbuild)
       let b:annot_file_path = findfile(annot_file_name,'.')
       if b:annot_file_path != ''
         let b:annot_file_path = getcwd().'/'.b:annot_file_path
         let b:_build_path = ''
-        let b:source_file_relative_path = expand('%')
+        let b:source_file_relative_path = s:Fnameescape(expand('%'))
       else
         " 2nd case : the buffer and the _build directory are in the same directory
         "      ..
@@ -310,7 +323,7 @@
           if b:annot_file_path != ''
             let b:annot_file_path = getcwd().'/'.b:annot_file_path
           endif
-          let b:source_file_relative_path = expand('%')
+          let b:source_file_relative_path = s:Fnameescape(expand('%'))
         else
           " 3rd case : the _build directory is in a directory higher in the file hierarchy 
           "            (it can't be deeper by ocamlbuild requirements)
@@ -325,9 +338,9 @@
           let b:_build_path = finddir('_build',';')
           if b:_build_path != ''
             let project_path                = substitute(b:_build_path,'/_build$','','')
-            let path_relative_to_project    = substitute(expand('%:p:h'),project_path.'/','','')
+            let path_relative_to_project    = s:Fnameescape(substitute(expand('%:p:h'),project_path.'/','',''))
             let b:annot_file_path           = findfile(annot_file_name,project_path.'/_build/'.path_relative_to_project)
-            let b:source_file_relative_path = substitute(expand('%:p'),project_path.'/','','')
+            let b:source_file_relative_path = s:Fnameescape(substitute(expand('%:p'),project_path.'/','',''))
           else
             let b:annot_file_path = findfile(annot_file_name,'**')
             "4th case : what if the user decided to change the name of the _build directory ?
@@ -339,7 +352,7 @@
                 let b:annot_file_path = getcwd().'/'.b:annot_file_path
                 let b:_build_path     = getcwd().'/'.b:_build_path
               endif
-              let b:source_file_relative_path = expand('%')
+              let b:source_file_relative_path = s:Fnameescape(expand('%'))
             else
               " 4b. anarchy : the renamed _build directory may be higher in the hierarchy
               " this will work if the file for which we are looking annotations has a unique name in the whole project
@@ -380,16 +393,16 @@
       set hidden
       let s:current_buf = bufname('%')
       if bufloaded(b:annot_file_path)
-        silent exe 'keepj keepalt' 'buffer' b:annot_file_path
+        silent exe 'keepj keepalt' 'buffer' s:Fnameescape(b:annot_file_path)
       else
-        silent exe 'keepj keepalt' 'view' b:annot_file_path
+        silent exe 'keepj keepalt' 'view' s:Fnameescape(b:annot_file_path)
       endif
     endfun
 
       " After call:
       "   The original buffer has been restored in the exact same state as before.
     function! s:Exit_annotation_buffer()
-      silent exe 'keepj keepalt' 'buffer' s:current_buf
+      silent exe 'keepj keepalt' 'buffer' s:Fnameescape(s:current_buf)
       let &l:hidden = s:current_hidden
       call setpos('.',s:current_pos)
     endfun
diff --git a/runtime/ftplugin/pamconf.vim b/runtime/ftplugin/pamconf.vim
index cf9707a..96d9646 100644
--- a/runtime/ftplugin/pamconf.vim
+++ b/runtime/ftplugin/pamconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         pam(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/passwd.vim b/runtime/ftplugin/passwd.vim
index 20f2b7f..5088c43 100644
--- a/runtime/ftplugin/passwd.vim
+++ b/runtime/ftplugin/passwd.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         passwd(5) password file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments= commentstring= formatoptions-=tcroq formatoptions+=l
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/perl.vim b/runtime/ftplugin/perl.vim
index 3f3e570..3771005 100644
--- a/runtime/ftplugin/perl.vim
+++ b/runtime/ftplugin/perl.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	Perl
 " Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Change:  2007 Nov 30
+" Last Change:  17 Jul 2008
 " URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
@@ -13,6 +13,7 @@
 set cpo-=C
 
 setlocal formatoptions+=crq
+setlocal keywordprg=perldoc\ -f
 
 setlocal comments=:#
 setlocal commentstring=#%s
@@ -63,7 +64,7 @@
 "---------------------------------------------
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf<" .
+let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp<" .
 	    \	      " | unlet! b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/pinfo.vim b/runtime/ftplugin/pinfo.vim
index 7f1ecdf..6ec1f87 100644
--- a/runtime/ftplugin/pinfo.vim
+++ b/runtime/ftplugin/pinfo.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         pinfo(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/procmail.vim b/runtime/ftplugin/procmail.vim
index a8db58e..cc2ceed 100644
--- a/runtime/ftplugin/procmail.vim
+++ b/runtime/ftplugin/procmail.vim
@@ -1,15 +1,21 @@
 " Vim filetype plugin file
 " Language:         procmail(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
 
 let &l:include = '^\s*INCLUDERC\>'
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/prolog.vim b/runtime/ftplugin/prolog.vim
index cf191a9..caeb574 100644
--- a/runtime/ftplugin/prolog.vim
+++ b/runtime/ftplugin/prolog.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Prolog
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:% commentstring=%\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/protocols.vim b/runtime/ftplugin/protocols.vim
index b3679bd..2486ff9 100644
--- a/runtime/ftplugin/protocols.vim
+++ b/runtime/ftplugin/protocols.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         protocols(5) - Internet protocols definition file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/quake.vim b/runtime/ftplugin/quake.vim
index 25c6e7e..f62693b 100644
--- a/runtime/ftplugin/quake.vim
+++ b/runtime/ftplugin/quake.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Quake[1-3] configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:// commentstring=//\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/racc.vim b/runtime/ftplugin/racc.vim
index 72c1e14..7ff22f8 100644
--- a/runtime/ftplugin/racc.vim
+++ b/runtime/ftplugin/racc.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Racc input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/readline.vim b/runtime/ftplugin/readline.vim
index 9656c57..0a4dbb5 100644
--- a/runtime/ftplugin/readline.vim
+++ b/runtime/ftplugin/readline.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         readline(3) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/rnc.vim b/runtime/ftplugin/rnc.vim
index a5d21fb..2b8fd50 100644
--- a/runtime/ftplugin/rnc.vim
+++ b/runtime/ftplugin/rnc.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Relax NG compact syntax
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index 8fc25e9..b871cf1 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         reStructuredText documentation format
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< et< fo<"
 
 setlocal comments=fb:.. commentstring=..\ %s expandtab
 setlocal formatoptions+=tcroql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/screen.vim b/runtime/ftplugin/screen.vim
index 92ce475..95c3849 100644
--- a/runtime/ftplugin/screen.vim
+++ b/runtime/ftplugin/screen.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         screen(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sensors.vim b/runtime/ftplugin/sensors.vim
index e1f66fc..813d14c 100644
--- a/runtime/ftplugin/sensors.vim
+++ b/runtime/ftplugin/sensors.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         sensors.conf(5) - libsensors configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/services.vim b/runtime/ftplugin/services.vim
index d670cd9..d34349e 100644
--- a/runtime/ftplugin/services.vim
+++ b/runtime/ftplugin/services.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         services(5) - Internet network services list
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/setserial.vim b/runtime/ftplugin/setserial.vim
index 4b4796b..f9d5945 100644
--- a/runtime/ftplugin/setserial.vim
+++ b/runtime/ftplugin/setserial.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         setserial(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sieve.vim b/runtime/ftplugin/sieve.vim
index d906e19..9a8759c 100644
--- a/runtime/ftplugin/sieve.vim
+++ b/runtime/ftplugin/sieve.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         Sieve filtering language input file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/slpconf.vim b/runtime/ftplugin/slpconf.vim
index 8c92a55..0c45689 100644
--- a/runtime/ftplugin/slpconf.vim
+++ b/runtime/ftplugin/slpconf.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:; commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/slpreg.vim b/runtime/ftplugin/slpreg.vim
index 07e42c1..e9d533e 100644
--- a/runtime/ftplugin/slpreg.vim
+++ b/runtime/ftplugin/slpreg.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location registration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:; commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/slpspi.vim b/runtime/ftplugin/slpspi.vim
index d6a6751..8d64d47 100644
--- a/runtime/ftplugin/slpspi.vim
+++ b/runtime/ftplugin/slpspi.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         RFC 2614 - An API for Service Location SPI file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:#,:; commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sshconfig.vim b/runtime/ftplugin/sshconfig.vim
index 3552696..f940af9 100644
--- a/runtime/ftplugin/sshconfig.vim
+++ b/runtime/ftplugin/sshconfig.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         OpenSSH client configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sudoers.vim b/runtime/ftplugin/sudoers.vim
index a698f04..5756302 100644
--- a/runtime/ftplugin/sudoers.vim
+++ b/runtime/ftplugin/sudoers.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         sudoers(5) configuration files
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/sysctl.vim b/runtime/ftplugin/sysctl.vim
index 6b1ac6c..fb1098d 100644
--- a/runtime/ftplugin/sysctl.vim
+++ b/runtime/ftplugin/sysctl.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         sysctl.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:;,:# commentstring=#\ %s
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/terminfo.vim b/runtime/ftplugin/terminfo.vim
index a473bcd..7ce31d1 100644
--- a/runtime/ftplugin/terminfo.vim
+++ b/runtime/ftplugin/terminfo.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         terminfo(5) definition
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/udevconf.vim b/runtime/ftplugin/udevconf.vim
index c0a0982..6042e14 100644
--- a/runtime/ftplugin/udevconf.vim
+++ b/runtime/ftplugin/udevconf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         udev(8) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/udevperm.vim b/runtime/ftplugin/udevperm.vim
index 82602b1..e7ad31d 100644
--- a/runtime/ftplugin/udevperm.vim
+++ b/runtime/ftplugin/udevperm.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         udev(8) permissions file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/udevrules.vim b/runtime/ftplugin/udevrules.vim
index 3cb4c33..be8d646 100644
--- a/runtime/ftplugin/udevrules.vim
+++ b/runtime/ftplugin/udevrules.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         udev(8) rules file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/updatedb.vim b/runtime/ftplugin/updatedb.vim
index db35fee..f4e7bce 100644
--- a/runtime/ftplugin/updatedb.vim
+++ b/runtime/ftplugin/updatedb.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         updatedb.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xdefaults.vim b/runtime/ftplugin/xdefaults.vim
index b441dfe..cd85182 100644
--- a/runtime/ftplugin/xdefaults.vim
+++ b/runtime/ftplugin/xdefaults.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         X resources files like ~/.Xdefaults (xrdb)
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=s1:/*,mb:*,ex:*/,:! commentstring& inc&
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xf86conf.vim b/runtime/ftplugin/xf86conf.vim
index 29e9eac..ab7569a 100644
--- a/runtime/ftplugin/xf86conf.vim
+++ b/runtime/ftplugin/xf86conf.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         XFree86 Configuration File
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xinetd.vim b/runtime/ftplugin/xinetd.vim
index b62dec5..f209af1 100644
--- a/runtime/ftplugin/xinetd.vim
+++ b/runtime/ftplugin/xinetd.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         xinetd.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< inc< fo<"
 
 setlocal comments=:# commentstring=#\ %s include=^\\s*include
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/xml.vim b/runtime/ftplugin/xml.vim
index 8cff537..55d9ee6 100644
--- a/runtime/ftplugin/xml.vim
+++ b/runtime/ftplugin/xml.vim
@@ -1,7 +1,7 @@
 " Vim filetype plugin file
 " Language:	xml
 " Maintainer:	Dan Sharp <dwsharp at hotmail dot com>
-" Last Changed: 2003 Sep 29
+" Last Changed: 30 Jun 2008
 " URL:		http://mywebpage.netscape.com/sharppeople/vim/ftplugin
 
 if exists("b:did_ftplugin") | finish | endif
@@ -13,6 +13,13 @@
 set cpo-=C
 
 setlocal commentstring=<!--%s-->
+setlocal comments=s:<!--,m:\ \ \ \ \ ,e:-->
+
+setlocal formatoptions-=t
+if !exists("g:ft_xml_autocomment") || (g:ft_xml_autocomment == 1)
+    setlocal formatoptions+=croql
+endif
+
 
 " XML:  thanks to Johannes Zellner and Akbar Ibrahim
 " - case sensitive
@@ -49,7 +56,7 @@
 endif
 
 " Undo the stuff we changed.
-let b:undo_ftplugin = "setlocal cms<" .
+let b:undo_ftplugin = "setlocal commentstring< comments< formatoptions<" .
 		\     " | unlet! b:match_ignorecase b:match_words b:browsefilter"
 
 " Restore the saved compatibility options.
diff --git a/runtime/ftplugin/xmodmap.vim b/runtime/ftplugin/xmodmap.vim
index a0d913e..027ae09 100644
--- a/runtime/ftplugin/xmodmap.vim
+++ b/runtime/ftplugin/xmodmap.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         xmodmap(1) definition file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:! commentstring=!\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/yaml.vim b/runtime/ftplugin/yaml.vim
index a2893cd..b88803a 100644
--- a/runtime/ftplugin/yaml.vim
+++ b/runtime/ftplugin/yaml.vim
@@ -1,14 +1,20 @@
 " Vim filetype plugin file
 " Language:         YAML (YAML Ain't Markup Language)
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< et< fo<"
 
 setlocal comments=:# commentstring=#\ %s expandtab
 setlocal formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/ftplugin/zsh.vim b/runtime/ftplugin/zsh.vim
index c8f82a5..c6db781 100644
--- a/runtime/ftplugin/zsh.vim
+++ b/runtime/ftplugin/zsh.vim
@@ -1,13 +1,19 @@
 " Vim filetype plugin file
 " Language:         Zsh shell script
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2008-07-09
 
 if exists("b:did_ftplugin")
   finish
 endif
 let b:did_ftplugin = 1
 
+let s:cpo_save = &cpo
+set cpo&vim
+
 let b:undo_ftplugin = "setl com< cms< fo<"
 
 setlocal comments=:# commentstring=#\ %s formatoptions-=t formatoptions+=croql
+
+let &cpo = s:cpo_save
+unlet s:cpo_save