updated for version 7.0102
diff --git a/runtime/syntax/a2ps.vim b/runtime/syntax/a2ps.vim
new file mode 100644
index 0000000..a559443
--- /dev/null
+++ b/runtime/syntax/a2ps.vim
@@ -0,0 +1,71 @@
+" Vim syntax file
+" Language:         a2ps(1) configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword a2psPreProc       Include
+                              \ nextgroup=a2psKeywordColon
+
+syn keyword a2psMacro         UserOption
+                              \ nextgroup=a2psKeywordColon
+
+syn keyword a2psKeyword       LibraryPath AppendLibraryPath PrependLibraryPath
+                              \ Options Medium Printer UnknownPrinter
+                              \ DefaultPrinter OutputFirstLine
+                              \ PageLabelFormat Delegation FileCommand
+                              \ nextgroup=a2psKeywordColon
+
+syn match   a2psKeywordColon  contained display ':'
+
+syn keyword a2psKeyword       Variable nextgroup=a2psVariableColon
+
+syn match   a2psVariableColon contained display ':'
+                              \ nextgroup=a2psVariable skipwhite
+
+syn match   a2psVariable      contained display '[^ \t:(){}]\+'
+                              \ contains=a2psVarPrefix
+
+syn match   a2psVarPrefix     contained display
+                              \ '\<\%(del\|pro\|ps\|pl\|toc\|user\|\)\ze\.'
+
+syn match   a2psLineCont      display '\\$'
+
+syn match   a2psSubst         display '$\%(-\=.\=\d\+\)\=\h\d\='
+syn match   a2psSubst         display '#[?!]\=\w\d\='
+syn match   a2psSubst         display '#{[^}]\+}'
+
+syn region  a2psString        display oneline start=+'+ end=+'+
+                              \ contains=a2psSubst
+
+syn region  a2psString        display oneline start=+"+ end=+"+
+                              \ contains=a2psSubst
+
+syn keyword a2psTodo          contained TODO FIXME XXX NOTE
+
+syn region  a2psComment       display oneline start='^\s*#' end='$'
+                              \ contains=a2psTodo,@Spell
+
+hi def link a2psTodo          Todo
+hi def link a2psComment       Comment
+hi def link a2psPreProc       PreProc
+hi def link a2psMacro         Macro
+hi def link a2psKeyword       Keyword
+hi def link a2psKeywordColon  Delimiter
+hi def link a2psVariableColon Delimiter
+hi def link a2psVariable      Identifier
+hi def link a2psVarPrefix     Type
+hi def link a2psLineCont      Special
+hi def link a2psSubst         PreProc
+hi def link a2psString        String
+
+let b:current_syntax = "a2ps"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/alsaconf.vim b/runtime/syntax/alsaconf.vim
index 0e3362a..f2bda18 100644
--- a/runtime/syntax/alsaconf.vim
+++ b/runtime/syntax/alsaconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         alsaconf(8) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,21 +12,19 @@
 
 syn keyword alsoconfTodo        contained FIXME TODO XXX NOTE
 
-syn region  alsaconfComment     matchgroup=alsaconfComment
+syn region  alsaconfComment     display oneline
                                 \ start='#' end='$'
                                 \ contains=alsaconfTodo,@Spell
 
 syn match   alsaconfSpecialChar contained display '\\[ntvbrf]'
 syn match   alsaconfSpecialChar contained display '\\\o\+'
 
-syn region  alsaconfString      matchgroup=alsaconfString
-                                \ start=+"+ skip=+\\$+ end=+"+ end=+$+
+syn region  alsaconfString      start=+"+ skip=+\\$+ end=+"\|$+
                                 \ contains=alsaconfSpecialChar
 
 syn match   alsaconfSpecial     contained display 'confdir:'
 
-syn region  alsaconfPreProc     matchgroup=alsaconfPreProc start='<' end='>'
-                                \ contains=alsaconfSpecial
+syn region  alsaconfPreProc     start='<' end='>' contains=alsaconfSpecial
 
 syn match   alsaconfMode        display '[+?!-]'
 
diff --git a/runtime/syntax/arch.vim b/runtime/syntax/arch.vim
index 663cca8..b9789d2 100644
--- a/runtime/syntax/arch.vim
+++ b/runtime/syntax/arch.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         GNU Arch inventory file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -14,19 +14,25 @@
 
 syn keyword archTodo    TODO FIXME XXX NOTE
 
-syn region  archComment display matchgroup=archComment
-                        \ start='^\%(#\|\s\)' end='$' contains=archTodo,@Spell
+syn region  archComment display start='^\%(#\|\s\)' end='$'
+                        \ contains=archTodo,@Spell
 
-syn keyword archKeyword implicit tagline explicit names
-syn keyword archKeyword untagged-source
-syn keyword archKeyword exclude junk backup precious unrecognized source
-                        \ skipwhite nextgroup=archRegex
+syn match   argBegin    display '^' nextgroup=archKeyword,archComment
+
+syn keyword archKeyword contained implicit tagline explicit names
+syn keyword archKeyword contained untagged-source
+                        \ nextgroup=archTMethod skipwhite
+syn keyword archKeyword contained exclude junk backup precious unrecognized
+                        \ source nextgroup=archRegex skipwhite
+
+syn keyword archTMethod contained source precious backup junk unrecognized
 
 syn match   archRegex   contained '\s*\zs.*'
 
 hi def link archTodo    Todo
 hi def link archComment Comment
 hi def link archKeyword Keyword
+hi def link archTMethod Type
 hi def link archRegex   String
 
 let b:current_syntax = "arch"
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
index 502ac70..c47ef32 100644
--- a/runtime/syntax/calendar.vim
+++ b/runtime/syntax/calendar.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         calendar(1) input file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,8 +12,7 @@
 
 syn keyword calendarTodo          contained TODO FIXME XXX NOTE
 
-syn region  calendarComment       matchgroup=calendarComment
-                                  \ start='/\*' end='\*/'
+syn region  calendarComment       start='/\*' end='\*/'
                                   \ contains=calendarTodo,@Spell
 
 syn region  calendarCppString     start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl
diff --git a/runtime/syntax/context.vim b/runtime/syntax/context.vim
index 4649b6c..1b3d244 100644
--- a/runtime/syntax/context.vim
+++ b/runtime/syntax/context.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         ConTeXt typesetting engine
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,10 +12,10 @@
 
 syn keyword contextTodo       TODO FIXME XXX NOTE
 
-syn region  contextComment    display oneline matchgroup=contextComment
-                              \ start='%' end='$' contains=contextTodo
-syn region  contextComment    display oneline matchgroup=contextComment
-                              \ start='^\s*%[CDM]' end='$' contains=ALL
+syn region  contextComment    display oneline start='%' end='$'
+                              \ contains=contextTodo
+syn region  contextComment    display oneline start='^\s*%[CDM]' end='$'
+                              \ contains=ALL
 
 syn match   contextStatement  display '\\[a-zA-Z@]\+' contains=@NoSpell
 
diff --git a/runtime/syntax/crm.vim b/runtime/syntax/crm.vim
index fdb1504..35d9e50 100644
--- a/runtime/syntax/crm.vim
+++ b/runtime/syntax/crm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         CRM114
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,7 +12,7 @@
 
 syn keyword crmTodo       contained TODO FIXME XXX NOTE
 
-syn region  crmComment    matchgroup=crmComment start='#' end='$' end='\\#'
+syn region  crmComment    display oneline start='#' end='\\#'
                           \ contains=crmTodo,@Spell
 
 syn match   crmVariable   display ':[*#@]:[^:]\{-1,}:'
@@ -23,8 +23,7 @@
 syn keyword crmStatement  fail fault goto hash intersect isolate input learn
 syn keyword crmStatement  liaf match output syscall trap union window
 
-syn region  crmRegex      matchgroup=crmRegex start='/' skip='\\/' end='/'
-                          \ contains=crmVariable
+syn region  crmRegex      start='/' skip='\\/' end='/' contains=crmVariable
 
 syn match   crmLabel      display '^\s*:[[:graph:]]\+:'
 
diff --git a/runtime/syntax/cvsrc.vim b/runtime/syntax/cvsrc.vim
index f93ca63..d901ae1 100644
--- a/runtime/syntax/cvsrc.vim
+++ b/runtime/syntax/cvsrc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         cvs(1) RC file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -10,8 +10,8 @@
 let s:cpo_save = &cpo
 set cpo&vim
 
-syn region  cvsrcString   display start=+"+ skip=+\\\\\|\\\\"+ end=+"\|$+
-syn region  cvsrcString   display start=+'+ skip=+\\\\\|\\\\'+ end=+'\|$+
+syn region  cvsrcString   display oneline start=+"+ skip=+\\\\\|\\\\"+ end=+"+
+syn region  cvsrcString   display oneline start=+'+ skip=+\\\\\|\\\\'+ end=+'+
 
 syn match   cvsrcNumber   display '\<\d\+\>'
 
diff --git a/runtime/syntax/dictconf.vim b/runtime/syntax/dictconf.vim
new file mode 100644
index 0000000..21474fa
--- /dev/null
+++ b/runtime/syntax/dictconf.vim
@@ -0,0 +1,80 @@
+" Vim syntax file
+" Language:         dict(1) configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword dictconfTodo        contained TODO FIXME XXX NOTE
+
+syn region  dictconfComment     display oneline start='#' end='$'
+                                \ contains=dictconfTodo,@Spell
+
+syn match   dictconfBegin       display '^'
+                                \ nextgroup=dictconfKeyword,dictconfComment
+                                \ skipwhite
+
+syn keyword dictconfKeyword     contained server
+                                \ nextgroup=dictconfServer skipwhite
+
+syn keyword dictconfKeyword     contained pager
+                                \ nextgroup=dictconfPager
+
+syn match   dictconfServer      contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+                                \ nextgroup=dictconfServerOptG skipwhite
+
+syn region  dictconfServer      contained display oneline
+                                \ start=+"+ skip=+""+ end=+"+
+                                \ nextgroup=dictconfServerOptG skipwhite
+
+syn region  dictconfServerOptG  contained transparent
+                                \ matchgroup=dictconfServerOptsD start='{'
+                                \ matchgroup=dictconfServerOptsD end='}'
+                                \ contains=dictconfServerOpts,dictconfComment
+
+syn keyword dictconfServerOpts  contained port
+                                \ nextgroup=dictconfNumber skipwhite
+
+syn keyword dictconfServerOpts  contained user
+                                \ nextgroup=dictconfUsername skipwhite
+
+syn match   dictconfUsername    contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+                                \ nextgroup=dictconfSecret skipwhite
+syn region  dictconfUsername    contained display oneline
+                                \ start=+"+ skip=+""+ end=+"+
+                                \ nextgroup=dictconfSecret skipwhite
+
+syn match   dictconfSecret      contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+syn region  dictconfSecret      contained display oneline
+                                \ start=+"+ skip=+""+ end=+"+
+
+syn match   dictconfNumber      contained '\<\d\+\>'
+
+syn match   dictconfPager       contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+syn region  dictconfPager       contained display oneline
+                                \ start=+"+ skip=+""+ end=+"+
+
+hi def link dictconfTodo        Todo
+hi def link dictconfComment     Comment
+hi def link dictconfKeyword     Keyword
+hi def link dictconfServer      String
+hi def link dictconfServerOptsD Delimiter
+hi def link dictconfServerOpts  Identifier
+hi def link dictconfUsername    String
+hi def link dictconfSecret      Special
+hi def link dictconfNumber      Number
+hi def link dictconfPager       String
+
+let b:current_syntax = "dictconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/dictdconf.vim b/runtime/syntax/dictdconf.vim
new file mode 100644
index 0000000..5651d7c
--- /dev/null
+++ b/runtime/syntax/dictdconf.vim
@@ -0,0 +1,146 @@
+" Vim syntax file
+" Language:         dictd(8) configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-01
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword dictdconfTodo        contained TODO FIXME XXX NOTE
+
+syn region  dictdconfComment    display oneline start='#' end='$'
+                                \ contains=dictdconfTodo,dictdconfSpecialC,
+                                \ @Spell
+
+syn keyword dictdconfSpecialC   LASTLINE
+
+syn match   dictdconfBegin      display '^'
+                                \ nextgroup=dictdconfKeyword,dictdconfComment
+                                \ skipwhite
+
+syn keyword dictdconfKeyword    contained access
+                                \ nextgroup=dictdconfAccessG skipwhite
+
+syn region  dictdconfAccessG    contained transparent
+                                \ matchgroup=dictdconfDelimiter start='{'
+                                \ matchgroup=dictdconfDelimiter end='}'
+                                \ contains=dictdconfAccess,dictdconfComment
+
+syn keyword dictdconfAccess     contained allow deny authonly user
+                                \ nextgroup=dictdconfString skipwhite
+
+syn keyword dictdconfKeyword    contained database
+                                \ nextgroup=dictdconfDatabase skipwhite
+
+syn match   dictdconfDatabase   contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+                                \ nextgroup=dictdconfSpecG skipwhite
+syn region  dictdconfDatabase   contained display oneline
+                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+
+                                \ nextgroup=dictdconfSpecG skipwhite
+
+syn region  dictdconfSpecG      contained transparent
+                                \ matchgroup=dictdconfDelimiter start='{'
+                                \ matchgroup=dictdconfDelimiter end='}'
+                                \ contains=dictdconfSpec,dictdconfAccess,
+                                \ dictdconfComment
+
+syn keyword dictdconfSpec       contained data index index_suffix index_word
+                                \ filter prefilter postfilter name info
+                                \ disable_strat
+                                \ nextgroup=dictdconfString skipwhite
+
+syn keyword dictdconfSpec       contained invisible
+
+syn keyword dictdconfKeyword    contained database_virtual
+                                \ nextgroup=dictdconfVDatabase skipwhite
+
+syn match   dictdconfVDatabase  contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+                                \ nextgroup=dictdconfVSpecG skipwhite
+syn region  dictdconfVDatabase   contained display oneline
+                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+
+                                \ nextgroup=dictdconfVSpecG skipwhite
+
+syn region  dictdconfVSpecG     contained transparent
+                                \ matchgroup=dictdconfDelimiter start='{'
+                                \ matchgroup=dictdconfDelimiter end='}'
+                                \ contains=dictdconfVSpec,dictdconfAccess,
+                                \ dictdconfComment
+
+syn keyword dictdconfVSpec      contained name info database_list disable_strat
+                                \ nextgroup=dictdconfString skipwhite
+
+syn keyword dictdconfVSpec      contained invisible
+
+syn keyword dictdconfKeyword    contained database_plugin
+                                \ nextgroup=dictdconfPDatabase skipwhite
+
+syn match   dictdconfPDatabase  contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+                                \ nextgroup=dictdconfPSpecG skipwhite
+syn region  dictdconfPDatabase   contained display oneline
+                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+
+                                \ nextgroup=dictdconfPSpecG skipwhite
+
+syn region  dictdconfPSpecG     contained transparent
+                                \ matchgroup=dictdconfDelimiter start='{'
+                                \ matchgroup=dictdconfDelimiter end='}'
+                                \ contains=dictdconfPSpec,dictdconfAccess,
+                                \ dictdconfComment
+
+syn keyword dictdconfPSpec      contained name info plugin data disable_strat
+                                \ nextgroup=dictdconfString skipwhite
+
+syn keyword dictdconfPSpec      contained invisible
+
+syn keyword dictdconfKeyword    contained database_exit
+
+syn keyword dictdconfKeyword    contained site
+                                \ nextgroup=dictdconfString skipwhite
+
+syn keyword dictdconfKeyword    contained user
+                                \ nextgroup=dictdconfUsername skipwhite
+
+syn match   dictdconfUsername   contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+                                \ nextgroup=dictdconfSecret skipwhite
+syn region  dictdconfUsername   contained display oneline
+                                \ start=+"+ skip=+""+ end=+"+
+                                \ nextgroup=dictdconfSecret skipwhite
+
+syn match   dictdconfSecret     contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+syn region  dictdconfSecret     contained display oneline
+                                \ start=+"+ skip=+""+ end=+"+
+
+syn match   dictdconfString     contained display
+                                \ '[[:alnum:]_/.*-][[:alnum:]_/.*-]*'
+syn region  dictdconfString     contained display oneline
+                                \ start=+"+ skip=+""\|\\\\\|\\"+ end=+"+
+
+hi def link dictdconfTodo       Todo
+hi def link dictdconfComment    Comment
+hi def link dictdconfSpecialC   Special
+hi def link dictdconfKeyword    Keyword
+hi def link dictdconfIdentifier Identifier
+hi def link dictdconfAccess     dictdconfIdentifier
+hi def link dictdconfDatabase   dictdconfString
+hi def link dictdconfSpec       dictdconfIdentifier
+hi def link dictdconfVDatabase  dictdconfDatabase
+hi def link dictdconfVSpec      dictdconfSpec
+hi def link dictdconfPDatabase  dictdconfDatabase
+hi def link dictdconfPSpec      dictdconfSpec
+hi def link dictdconfUsername   dictdconfString
+hi def link dictdconfSecret     Special
+hi def link dictdconfString     String
+hi def link dictdconfDelimiter  Delimiter
+
+let b:current_syntax = "dictdconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/elinks.vim b/runtime/syntax/elinks.vim
index 20dff83..dea04ba 100644
--- a/runtime/syntax/elinks.vim
+++ b/runtime/syntax/elinks.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         elinks(1) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -14,13 +14,13 @@
 
 syn keyword elinksTodo      contained TODO FIXME XXX NOTE
 
-syn region  elinksComment   matchgroup=elinksComment start='#' end='$'
-                            \ contains=elinksTodo
+syn region  elinksComment   display oneline start='#' end='$'
+                            \ contains=elinksTodo,@Spell
 
 syn match   elinksNumber    '\<\d\+\>'
 
-syn region  elinksString    matchgroup=elinksString start=+"+
-                            \ skip=+\\\\\|\\"+ end=+"+ contains=@elinksColor
+syn region  elinksString    start=+"+ skip=+\\\\\|\\"+ end=+"+
+                            \ contains=@elinksColor
 
 syn keyword elinksKeyword   set bind
 
diff --git a/runtime/syntax/eterm.vim b/runtime/syntax/eterm.vim
index d24e08a..8bc4367 100644
--- a/runtime/syntax/eterm.vim
+++ b/runtime/syntax/eterm.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         eterm(1) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,10 +12,10 @@
 
 syn keyword etermTodo             contained TODO FIXME XXX NOTE
 
-syn region  etermComment          matchgroup=etermComment start='^#' end='$'
+syn region  etermComment          display oneline start='^#' end='$'
                                   \ contains=etermTodo,@Spell
 
-syn match   etermMagic            display display '^<Eterm-[0-9.]\+>$'
+syn match   etermMagic            display '^<Eterm-[0-9.]\+>$'
 
 syn match   etermNumber           contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
 
@@ -169,7 +169,8 @@
 syn match   etermImageGamma       contained display '\<\(\d\+\|0x\x\{1,2}\)\>'
                                   \ nextgroup=etermImageGamma skipwhite
 
-syn region  etermImageOptions     contained matchgroup=etermImageOptions
+syn region  etermImageOptions     contained display oneline
+                                  \ matchgroup=etermImageOptions
                                   \ start='border\|bevel\%(\s\+\%(up\|down\)\)\|padding'
                                   \ end='$' contains=etermNumber
 
diff --git a/runtime/syntax/group.vim b/runtime/syntax/group.vim
new file mode 100644
index 0000000..9b3e500
--- /dev/null
+++ b/runtime/syntax/group.vim
@@ -0,0 +1,52 @@
+" Vim syntax file
+" Language:         group(5) user group file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match   groupBegin          display '^' nextgroup=groupName
+
+syn match   groupName           contained display '[a-z_][a-z0-9_-]\{0,15}'
+                                \ nextgroup=groupPasswordColon
+
+syn match   groupPasswordColon  contained display ':'
+                                \ nextgroup=groupPassword,groupShadow
+
+syn match   groupPassword       contained display '[^:]*'
+                                \ nextgroup=groupGIDColon
+
+syn match   groupShadow         contained display '[x*]' nextgroup=groupGIDColon
+
+syn match   groupGIDColon       contained display ':' nextgroup=groupGID
+
+syn match   groupGID            contained display '\d\+'
+                                \ nextgroup=groupUserListColon
+
+syn match   groupUserListColon  contained display ':' nextgroup=groupUserList
+
+syn match   groupUserList       contained '[a-z_][a-z0-9_-]*'
+                                \ nextgroup=groupUserListSep
+
+syn match   groupUserListSep    contained display ',' nextgroup=groupUserList
+
+hi def link groupDelimiter      Normal
+hi def link groupName           Identifier
+hi def link groupPasswordColon  groupDelimiter
+hi def link groupPassword       Number
+hi def link groupShadow         Special
+hi def link groupGIDColon       groupDelimiter
+hi def link groupGID            Number
+hi def link groupUserListColon  groupDelimiter
+hi def link groupUserList       Identifier
+hi def link groupUserListSep    groupDelimiter
+
+let b:current_syntax = "group"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/indent.vim b/runtime/syntax/indent.vim
index 8d822ea..9310c49 100644
--- a/runtime/syntax/indent.vim
+++ b/runtime/syntax/indent.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         indent(1) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 "   indent_is_bsd:  If exists, will change somewhat to match BSD implementation
 "
 " TODO: is the deny-all (a la lilo.vim nice or no?)...
@@ -21,11 +21,9 @@
 
 syn keyword indentTodo    contained TODO FIXME XXX NOTE
 
-syn region  indentComment matchgroup=indentComment
-                          \ start='/\*' end='\*/'
+syn region  indentComment start='/\*' end='\*/'
                           \ contains=indentTodo,@Spell
-syn region  indentComment matchgroup=indentComment
-                          \ start='//' skip='\\$' end='$'
+syn region  indentComment start='//' skip='\\$' end='$'
                           \ contains=indentTodo,@Spell
 
 syn keyword indentOptions -bacc --blank-lines-after-ifdefs
diff --git a/runtime/syntax/lftp.vim b/runtime/syntax/lftp.vim
index 0aab71e..9b346a1 100644
--- a/runtime/syntax/lftp.vim
+++ b/runtime/syntax/lftp.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         lftp(1) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,8 +12,8 @@
 
 setlocal iskeyword=@,48-57,-
 
-syn region  lftpComment         display oneline matchgroup=lftpComment
-                                \ start='#' end='$' contains=lftpTodo,@Spell
+syn region  lftpComment         display oneline start='#' end='$'
+                                \ contains=lftpTodo,@Spell
 
 syn keyword lftpTodo            contained TODO FIXME XXX NOTE
 
diff --git a/runtime/syntax/libao.vim b/runtime/syntax/libao.vim
index f4ce623..fdf8594 100644
--- a/runtime/syntax/libao.vim
+++ b/runtime/syntax/libao.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         libao.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,7 +12,7 @@
 
 syn keyword libaoTodo     contained TODO FIXME XXX NOTE
 
-syn region  libaoComment  matchgroup=libaoComment start='^\s*#' end='$'
+syn region  libaoComment  display oneline start='^\s*#' end='$'
                           \ contains=libaoTodo,@Spell
 
 syn keyword libaoKeyword  default_driver
diff --git a/runtime/syntax/manconf.vim b/runtime/syntax/manconf.vim
new file mode 100644
index 0000000..cdf89b9
--- /dev/null
+++ b/runtime/syntax/manconf.vim
@@ -0,0 +1,117 @@
+" Vim syntax file
+" Language:         man.conf(5) - man configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-04
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword manconfTodo         contained TODO FIXME XXX NOTE
+
+syn region  manconfComment      display oneline start='^#' end='$'
+                                \ contains=manconfTodo,@Spell
+
+if !has("win32") && $OSTYPE =~   'bsd'
+  syn match   manconfBegin      display '^'
+                                \ nextgroup=manconfKeyword,manconfSection,
+                                \ manconfComment skipwhite
+
+  syn keyword manconfKeyword    contained _build _crunch
+                                \ nextgroup=manconfExtCmd skipwhite
+
+  syn keyword manconfKeyword    contained _suffix
+                                \ nextgroup=manconfExt skipwhite
+
+  syn keyword manconfKeyword    contained _crunch
+
+  syn keyword manconfKeyword    contained _subdir _version _whatdb
+                                \ nextgroup=manconfPaths skipwhite
+
+  syn match   manconfExtCmd     contained display '\.\S\+'
+                                \ nextgroup=manconfPaths skipwhite
+
+  syn match   manconfSection    contained '[^#_ \t]\S*'
+                                \ nextgroup=manconfPaths skipwhite
+
+  syn keyword manconfSection    contained _default
+                                \ nextgroup=manconfPaths skipwhite
+
+  syn match   manconfPaths      contained display '\S\+'
+                                \ nextgroup=manconfPaths skipwhite
+
+  syn match   manconfExt        contained display '\.\S\+'
+
+  hi def link manconfExtCmd     Type
+  hi def link manconfSection    Identifier
+  hi def link manconfPaths      String
+else
+  syn match   manconfBegin      display '^'
+                                \ nextgroup=manconfBoolean,manconfKeyword,
+                                \ manconfDecompress,manconfComment skipwhite
+
+  syn keyword manconfBoolean    contained FSSTND FHS NOAUTOPATH NOCACHE
+
+  syn keyword manconfKeyword    contained MANBIN
+                                \ nextgroup=manconfPath skipwhite
+
+  syn keyword manconfKeyword    contained MANPATH MANPATH_MAP
+                                \ nextgroup=manconfFirstPath skipwhite
+
+  syn keyword manconfKeyword    contained APROPOS WHATIS TROFF NROFF JNROFF EQN
+                                \ NEQN JNEQN TBL COL REFER PIC VGRIND GRAP
+                                \ PAGER BROWSER HTMLPAGER CMP CAT COMPRESS
+                                \ DECOMPRESS MANDEFOPTIONS
+                                \ nextgroup=manconfCommand skipwhite
+
+  syn keyword manconfKeyword    contained COMPRESS_EXT
+                                \ nextgroup=manconfExt skipwhite
+
+  syn keyword manconfKeyword    contained MANSECT
+                                \ nextgroup=manconfManSect skipwhite
+
+  syn match   manconfPath       contained display '\S\+'
+
+  syn match   manconfFirstPath  contained display '\S\+'
+                                \ nextgroup=manconfSecondPath skipwhite
+
+  syn match   manconfSecondPath contained display '\S\+'
+
+  syn match   manconfCommand    contained display '\%(/[^/ \t]\+\)\+'
+                                \ nextgroup=manconfCommandOpt skipwhite
+
+  syn match   manconfCommandOpt contained display '\S\+'
+                                \ nextgroup=manconfCommandOpt skipwhite
+
+  syn match   manconfExt        contained display '\.\S\+'
+
+  syn match   manconfManSect    contained '[^:]\+' nextgroup=manconfManSectSep
+
+  syn match   manconfManSectSep contained ':' nextgroup=manconfManSect
+
+  syn match   manconfDecompress contained '\.\S\+'
+                                \ nextgroup=manconfCommand skipwhite
+
+  hi def link manconfBoolean    Boolean
+  hi def link manconfPath       String
+  hi def link manconfFirstPath  manconfPath
+  hi def link manconfSecondPath manconfPath
+  hi def link manconfCommand    String
+  hi def link manconfCommandOpt Special
+  hi def link manconfManSect    Identifier
+  hi def link manconfManSectSep Delimiter
+  hi def link manconfDecompress Type
+endif
+
+hi def link manconfTodo         Todo
+hi def link manconfComment      Comment
+hi def link manconfKeyword      Keyword
+hi def link manconfExt          Type
+
+let b:current_syntax = "manconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/mplayerconf.vim b/runtime/syntax/mplayerconf.vim
index 856d8ce..9059206 100644
--- a/runtime/syntax/mplayerconf.vim
+++ b/runtime/syntax/mplayerconf.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         mplayer(1) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -14,8 +14,7 @@
 
 syn keyword mplayerconfTodo     contained TODO FIXME XXX NOTE
 
-syn region mplayerconfComment   display matchgroup=mplayerconfComment
-                                \ start='#' end='$'
+syn region mplayerconfComment   display oneline start='#' end='$'
                                 \ contains=mplayerconfTodo,@Spell
 
 syn keyword mplayerconfPreProc  include
diff --git a/runtime/syntax/nanorc.vim b/runtime/syntax/nanorc.vim
new file mode 100644
index 0000000..c13b30b
--- /dev/null
+++ b/runtime/syntax/nanorc.vim
@@ -0,0 +1,243 @@
+" Vim syntax file
+" Language:         nanorc(5) - GNU nano configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword nanorcTodo          contained TODO FIXME XXX NOTE
+
+syn region  nanorcComment       display oneline start='^\s*#' end='$'
+                                \ contains=nanorcTodo,@Spell
+
+syn match   nanorcBegin         display '^'
+                                \ nextgroup=nanorcKeyword,nanorcComment
+                                \ skipwhite
+
+syn keyword nanorcKeyword       contained set unset
+                                \ nextgroup=nanorcBoolOption,
+                                \ nanorcStringOption,nanorcNumberOption
+                                \ skipwhite
+
+syn keyword nanorcKeyword       contained syntax
+                                \ nextgroup=nanorcSynGroupName skipwhite
+
+syn keyword nanorcKeyword       contained color
+                                \ nextgroup=@nanorcFGColor skipwhite
+
+syn keyword nanorcBoolOption    contained autoindent backup const cut
+                                \ historylog morespace mouse multibuffer
+                                \ noconvert nofollow nohelp nowrap preserve
+                                \ rebinddelete regexp smarthome smooth suspend
+                                \ tempfile view
+
+syn keyword nanorcStringOption  contained backupdir brackets operatingdir
+                                \ punct quotestr speller whitespace
+                                \ nextgroup=nanorcString skipwhite
+
+syn keyword nanorcNumberOption  contained fill tabsize
+                                \ nextgroup=nanorcNumber skipwhite
+
+syn region  nanorcSynGroupName  contained display oneline start=+"+
+                                \ end=+"\ze\%([[:blank:]]\|$\)+
+                                \ nextgroup=nanorcRegexes skipwhite
+
+syn match   nanorcString        contained display '".*"'
+
+syn region  nanorcRegexes       contained display oneline start=+"+
+                                \ end=+"\ze\%([[:blank:]]\|$\)+
+                                \ nextgroup=nanorcRegexes skipwhite
+
+syn match   nanorcNumber        contained display '[+-]\=\<\d\+\>'
+
+syn cluster nanorcFGColor       contains=nanorcFGWhite,nanorcFGBlack,
+                                \ nanorcFGRed,nanorcFGBlue,nanorcFGGreen,
+                                \ nanorcFGYellow,nanorcFGMagenta,nanorcFGCyan,
+                                \ nanorcFGBWhite,nanorcFGBBlack,nanorcFGBRed,
+                                \ nanorcFGBBlue,nanorcFGBGreen,nanorcFGBYellow,
+                                \ nanorcFGBMagenta,nanorcFGBCyan
+
+syn keyword nanorcFGWhite       contained white
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBlack       contained black
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGRed         contained red
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBlue        contained blue
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGGreen       contained green
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGYellow      contained yellow
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGMagenta     contained magenta
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGCyan        contained cyan
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBWhite      contained brightwhite
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBBlack      contained brightblack
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBRed        contained brightred
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBBlue       contained brightblue
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBGreen      contained brightgreen
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBYellow     contained brightyellow
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBMagenta    contained brightmagenta
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn keyword nanorcFGBCyan       contained brightcyan
+                                \ nextgroup=@nanorcFGSpec skipwhite
+
+syn cluster nanorcBGColor       contains=nanorcBGWhite,nanorcBGBlack,
+                                \ nanorcBGRed,nanorcBGBlue,nanorcBGGreen,
+                                \ nanorcBGYellow,nanorcBGMagenta,nanorcBGCyan,
+                                \ nanorcBGBWhite,nanorcBGBBlack,nanorcBGBRed,
+                                \ nanorcBGBBlue,nanorcBGBGreen,nanorcBGBYellow,
+                                \ nanorcBGBMagenta,nanorcBGBCyan
+
+syn keyword nanorcBGWhite       contained white
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBlack       contained black
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGRed         contained red
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBlue        contained blue
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGGreen       contained green
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGYellow      contained yellow
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGMagenta     contained magenta
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGCyan        contained cyan
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBWhite      contained brightwhite
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBBlack      contained brightblack
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBRed        contained brightred
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBBlue       contained brightblue
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBGreen      contained brightgreen
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBYellow     contained brightyellow
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBMagenta    contained brightmagenta
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn keyword nanorcBGBCyan       contained brightcyan
+                                \ nextgroup=@nanorcBGSpec skipwhite
+
+syn match   nanorcBGColorSep    contained ',' nextgroup=@nanorcBGColor
+
+syn cluster nanorcFGSpec        contains=nanorcBGColorSep,nanorcRegexes,
+                                \ nanorcStartRegion
+
+syn cluster nanorcBGSpec        contains=nanorcRegexes,nanorcStartRegion
+
+syn keyword nanorcStartRegion   contained start nextgroup=nanorcStartRegionEq
+
+syn match   nanorcStartRegionEq contained '=' nextgroup=nanorcRegion
+
+syn region  nanorcRegion        contained display oneline start=+"+
+                                \ end=+"\ze\%([[:blank:]]\|$\)+
+                                \ nextgroup=nanorcEndRegion skipwhite
+
+syn keyword nanorcEndRegion     contained end nextgroup=nanorcStartRegionEq
+
+syn match   nanorcEndRegionEq   contained '=' nextgroup=nanorcRegex
+
+syn region  nanorcRegex         contained display oneline start=+"+
+                                \ end=+"\ze\%([[:blank:]]\|$\)+
+
+hi def link nanorcTodo          Todo
+hi def link nanorcComment       Comment
+hi def link nanorcKeyword       Keyword
+hi def link nanorcBoolOption    Identifier
+hi def link nanorcStringOption  Identifier
+hi def link nanorcNumberOption  Identifier
+hi def link nanorcSynGroupName  String
+hi def link nanorcString        String
+hi def link nanorcRegexes       nanorcString
+hi def link nanorcNumber        Number
+hi def      nanorcFGWhite       ctermfg=Gray guifg=Gray
+hi def      nanorcFGBlack       ctermfg=Black guifg=Black
+hi def      nanorcFGRed         ctermfg=DarkRed guifg=DarkRed
+hi def      nanorcFGBlue        ctermfg=DarkBlue guifg=DarkBlue
+hi def      nanorcFGGreen       ctermfg=DarkGreen guifg=DarkGreen
+hi def      nanorcFGYellow      ctermfg=Brown guifg=Brown
+hi def      nanorcFGMagenta     ctermfg=DarkMagenta guifg=DarkMagenta
+hi def      nanorcFGCyan        ctermfg=DarkCyan guifg=DarkCyan
+hi def      nanorcFGBWhite      ctermfg=White guifg=White
+hi def      nanorcFGBBlack      ctermfg=DarkGray guifg=DarkGray
+hi def      nanorcFGBRed        ctermfg=Red guifg=Red
+hi def      nanorcFGBBlue       ctermfg=Blue guifg=Blue
+hi def      nanorcFGBGreen      ctermfg=Green guifg=Green
+hi def      nanorcFGBYellow     ctermfg=Yellow guifg=Yellow
+hi def      nanorcFGBMagenta    ctermfg=Magenta guifg=Magenta
+hi def      nanorcFGBCyan       ctermfg=Cyan guifg=Cyan
+hi def link nanorcBGColorSep    Normal
+hi def      nanorcBGWhite       ctermbg=Gray guibg=Gray
+hi def      nanorcBGBlack       ctermbg=Black guibg=Black
+hi def      nanorcBGRed         ctermbg=DarkRed guibg=DarkRed
+hi def      nanorcBGBlue        ctermbg=DarkBlue guibg=DarkBlue
+hi def      nanorcBGGreen       ctermbg=DarkGreen guibg=DarkGreen
+hi def      nanorcBGYellow      ctermbg=Brown guibg=Brown
+hi def      nanorcBGMagenta     ctermbg=DarkMagenta guibg=DarkMagenta
+hi def      nanorcBGCyan        ctermbg=DarkCyan guibg=DarkCyan
+hi def      nanorcBGBWhite      ctermbg=White guibg=White
+hi def      nanorcBGBBlack      ctermbg=DarkGray guibg=DarkGray
+hi def      nanorcBGBRed        ctermbg=Red guibg=Red
+hi def      nanorcBGBBlue       ctermbg=Blue guibg=Blue
+hi def      nanorcBGBGreen      ctermbg=Green guibg=Green
+hi def      nanorcBGBYellow     ctermbg=Yellow guibg=Yellow
+hi def      nanorcBGBMagenta    ctermbg=Magenta guibg=Magenta
+hi def      nanorcBGBCyan       ctermbg=Cyan guibg=Cyan
+hi def link nanorcStartRegion   Type
+hi def link nanorcStartRegionEq Operator
+hi def link nanorcRegion        nanorcString
+hi def link nanorcEndRegion     Type
+hi def link nanorcEndRegionEq   Operator
+hi def link nanorcRegex         nanoRegexes
+
+let b:current_syntax = "nanorc"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/passwd.vim b/runtime/syntax/passwd.vim
new file mode 100644
index 0000000..ffb979f
--- /dev/null
+++ b/runtime/syntax/passwd.vim
@@ -0,0 +1,71 @@
+" Vim syntax file
+" Language:         passwd(5) password file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match   passwdBegin         display '^' nextgroup=passwdAccount
+
+syn match   passwdAccount       contained display '[a-z_][a-z0-9_-]*'
+                                \ nextgroup=passwdPasswordColon
+
+syn match   passwdPasswordColon contained display ':'
+                                \ nextgroup=passwdPassword,passwdShadow
+
+syn match   passwdPassword      contained display '[^:]\+'
+                                \ nextgroup=passwdUIDColon
+
+syn match   passwdShadow        contained display '[x*!]'
+                                \ nextgroup=passwdUIDColon
+
+syn match   passwdUIDColon      contained display ':' nextgroup=passwdUID
+
+syn match   passwdUID           contained display '\d\+'
+                                \ nextgroup=passwdGIDColon
+
+syn match   passwdGIDColon      contained display ':' nextgroup=passwdGID
+
+syn match   passwdGID           contained display '\d\+'
+                                \ nextgroup=passwdGecosColon
+
+syn match   passwdGecosColon    contained display ':' nextgroup=passwdGecos
+
+syn match   passwdGecos         contained display '[^:]*'
+                                \ nextgroup=passwdDirColon
+
+syn match   passwdDirColon      contained display ':' nextgroup=passwdDir
+
+syn match   passwdDir           contained display '/[^:]*'
+                                \ nextgroup=passwdShellColon
+
+syn match   passwdShellColon    contained display ':'
+                                \ nextgroup=passwdShell
+
+syn match   passwdShell         contained display '[/*][^:]*'
+
+hi def link passwdColon         Normal
+hi def link passwdAccount       Identifier
+hi def link passwdPasswordColon passwdColon
+hi def link passwdPassword      Number
+hi def link passwdShadow        Special
+hi def link passwdUIDColon      passwdColon
+hi def link passwdUID           Number
+hi def link passwdGIDColon      passwdColon
+hi def link passwdGID           Number
+hi def link passwdGecosColon    passwdColon
+hi def link passwdGecos         Comment
+hi def link passwdDirColon      passwdColon
+hi def link passwdDir           Type
+hi def link passwdShellColon    passwdColon
+hi def link passwdShell         Operator
+
+let b:current_syntax = "passwd"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/pinfo.vim b/runtime/syntax/pinfo.vim
index dc76e9f..88d490c 100644
--- a/runtime/syntax/pinfo.vim
+++ b/runtime/syntax/pinfo.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         pinfo(1) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-28
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -73,8 +73,7 @@
                                   \ KEY_PPAGE KEY_END KEY_IC KEY_DC
 syn region  pinfoSpecialKeys      matchgroup=pinfoSpecialKeys transparent
                                   \ start=+KEY_\%(F\|CTRL\|ALT\)(+ end=+)+
-syn region  pinfoSimpleKey        matchgroup=pinfoSimpleKey start=+'+
-                                  \ skip=+\\'+ end=+'+
+syn region  pinfoSimpleKey        start=+'+ skip=+\\'+ end=+'+
                                   \ contains=pinfoSimpleKeyEscape
 syn match   pinfoSimpleKeyEscape  +\\[\\nt']+
 syn match   pinfoKeycode          '\<\d\+\>'
diff --git a/runtime/syntax/protocols.vim b/runtime/syntax/protocols.vim
new file mode 100644
index 0000000..ab586bc
--- /dev/null
+++ b/runtime/syntax/protocols.vim
@@ -0,0 +1,44 @@
+" Vim syntax file
+" Language:         protocols(5) - Internet protocols definition file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match   protocolsBegin    display '^'
+                              \ nextgroup=protocolsName,protocolsComment
+
+syn match   protocolsName     contained display '[[:graph:]]\+'
+                              \ nextgroup=protocolsPort skipwhite
+
+syn match   protocolsPort     contained display '\d\+'
+                              \ nextgroup=protocolsAliases,protocolsComment
+                              \ skipwhite
+
+syn match   protocolsAliases  contained display '\S\+'
+                              \ nextgroup=protocolsAliases,protocolsComment
+                              \ skipwhite
+
+syn keyword protocolsTodo     contained TODO FIXME XXX NOTE
+
+syn region  protocolsComment  display oneline start='#' end='$'
+                              \ contains=protocolsTodo,@Spell
+
+hi def link protocolsTodo      Todo
+hi def link protocolsComment   Comment
+hi def link protocolsName      Identifier
+hi def link protocolsPort      Number
+hi def link protocolsPPDiv     Delimiter
+hi def link protocolsPPDivDepr Error
+hi def link protocolsProtocol  Type
+hi def link protocolsAliases   Macro
+
+let b:current_syntax = "protocols"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/racc.vim b/runtime/syntax/racc.vim
index 0644895..a8a8c05 100644
--- a/runtime/syntax/racc.vim
+++ b/runtime/syntax/racc.vim
@@ -1,7 +1,7 @@
 " Vim default file
 " Language:         Racc input file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,9 +12,9 @@
 
 syn keyword raccTodo        contained TODO FIXME XXX NOTE
 
-syn region  raccComment     matchgroup=raccComment start='/\*' end='\*/'
+syn region  raccComment     start='/\*' end='\*/'
                             \ contains=raccTodo,@Spell
-syn region  raccComment     matchgroup=raccComment start='#' end='$'
+syn region  raccComment     display oneline start='#' end='$'
                             \ contains=raccTodo,@Spell
 
 syn region  raccClass       transparent matchgroup=raccKeyword
@@ -77,10 +77,10 @@
 
 syn match   raccSpecial     contained '\\["'\\]'
 
-syn region  raccString      matchgroup=raccString start=+"+ skip=+\\\\\|\\"+
-                            \ end=+"+ contains=raccSpecial
-syn region  raccString      matchgroup=raccString start=+'+ skip=+\\\\\|\\'+
-                            \ end=+'+ contains=raccSpecial
+syn region  raccString      start=+"+ skip=+\\\\\|\\"+ end=+"+
+                            \ contains=raccSpecial
+syn region  raccString      start=+'+ skip=+\\\\\|\\'+ end=+'+
+                            \ contains=raccSpecial
 
 syn region  raccRules       transparent matchgroup=raccKeyword start='\<rule\>'
                             \ end='\<end\>' contains=raccComment,raccString,
diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim
index cc4d86d..cd7b10f 100644
--- a/runtime/syntax/readline.vim
+++ b/runtime/syntax/readline.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         readline(3) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 "   readline_has_bash - if defined add support for bash specific
 "                       settings/functions
 
@@ -16,8 +16,7 @@
 
 syn keyword readlineTodo        contained TODO FIXME XXX NOTE
 
-syn region  readlineComment     display oneline matchgroup=readlineComment
-                                \ start='^\s*#' end='$'
+syn region  readlineComment     display oneline start='^\s*#' end='$'
                                 \ contains=readlineTodo,@Spell
 
 syn match   readlineString      '^\s*[A-Za-z-]\+:'me=e-1 contains=readlineKeys
diff --git a/runtime/syntax/rnc.vim b/runtime/syntax/rnc.vim
index 99f7f19..3758ec5 100644
--- a/runtime/syntax/rnc.vim
+++ b/runtime/syntax/rnc.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Relax NG compact syntax
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -14,7 +14,7 @@
 
 syn keyword rncTodo         contained TODO FIXME XXX NOTE
 
-syn region  rncComment      matchgroup=rncComment start='^\s*#' end='$'
+syn region  rncComment      display oneline start='^\s*#' end='$'
                             \ contains=rncTodo,@Spell
 
 syn match   rncOperator     display '[-|,&+?*~]'
@@ -30,12 +30,12 @@
 syn region rncAnnotation    transparent start='\[' end='\]'
                             \ contains=ALLBUT,rncComment,rncTodo
 
-syn region  rncLiteral      matchgroup=rncLiteral oneline start=+"+ end=+"+
+syn region  rncLiteral      display oneline start=+"+ end=+"+
                             \ contains=rncSpecial
-syn region  rncLiteral      matchgroup=rncLiteral oneline start=+'+ end=+'+
-syn region  rncLiteral      matchgroup=rncLiteral start=+"""+ end=+"""+
+syn region  rncLiteral      display oneline start=+'+ end=+'+
+syn region  rncLiteral      display oneline start=+"""+ end=+"""+
                             \ contains=rncSpecial
-syn region  rncLiteral      matchgroup=rncLiteral start=+'''+ end=+'''+
+syn region  rncLiteral      display oneline start=+'''+ end=+'''+
 
 syn match   rncDelimiter    display '[{},()]'
 
diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim
index a1b4429..2336783 100644
--- a/runtime/syntax/rst.vim
+++ b/runtime/syntax/rst.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         reStructuredText documentation format
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -14,8 +14,7 @@
 
 syn case ignore
 
-syn region      rstComment          matchgroup=rstComment
-                                    \ start='^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)'
+syn region      rstComment          start='^\.\.\%( \%([a-z0-9_.-]\+::\)\@!\|$\)'
                                     \ end='^\s\@!' contains=rstTodo
 
 syn cluster     rstCruft            contains=rstFootnoteLabel,rstCitationLabel,
diff --git a/runtime/syntax/screen.vim b/runtime/syntax/screen.vim
index 553d1d5..1baaa5b 100644
--- a/runtime/syntax/screen.vim
+++ b/runtime/syntax/screen.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         screen(1) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -14,15 +14,13 @@
 
 syn keyword screenTodo      contained TODO FIXME XXX NOTE
 
-syn region  screenComment   display oneline matchgroup=screenComment
-                            \ start='#' end='$' contains=screenTodo,@Spell
+syn region  screenComment   display oneline start='#' end='$'
+                            \ contains=screenTodo,@Spell
 
-syn region  screenString    display oneline matchgroup=screenString
-                            \ start=+"+ skip=+\\"+ end=+"\|$+
+syn region  screenString    display oneline start=+"+ skip=+\\"+ end=+"+
                             \ contains=screenVariable,screenSpecial
 
-syn region  screenLiteral   display oneline matchgroup=screenLiteral
-                            \ start=+'+ skip=+\\'+ end=+'\|$+
+syn region  screenLiteral   display oneline start=+'+ skip=+\\'+ end=+'+
 
 syn match   screenVariable  contained display '$\(\h\w*\|{\h\w*}\)'
 
diff --git a/runtime/syntax/sensors.vim b/runtime/syntax/sensors.vim
new file mode 100644
index 0000000..41c13e8
--- /dev/null
+++ b/runtime/syntax/sensors.vim
@@ -0,0 +1,52 @@
+" Vim syntax file
+" Language:         sensors.conf(5) - libsensors configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-04
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword sensorsTodo         contained TODO FIXME XXX NOTE
+
+syn region  sensorsComment      display oneline start='#' end='$'
+                                \ contains=sensorsTodo,@Spell
+
+
+syn keyword sensorsKeyword      bus chip label compute ignore set
+
+syn region  sensorsName         display oneline
+                                \ start=+"+ skip=+\\\\\|\\"+ end=+"+
+                                \ contains=sensorsNameSpecial
+syn match   sensorsName         display '\w\+'
+
+syn match   sensorsNameSpecial  display '\\["\\rnt]'
+
+syn match   sensorsLineContinue '\\$'
+
+syn match   sensorsNumber       display '\d*.\d\+\>'
+
+syn match   sensorsRealWorld    display '@'
+
+syn match   sensorsOperator     display '[+*/-]'
+
+syn match   sensorsDelimiter    display '[()]'
+
+hi def link sensorsTodo         Todo
+hi def link sensorsComment      Comment
+hi def link sensorsKeyword      Keyword
+hi def link sensorsName         String
+hi def link sensorsNameSpecial  SpecialChar
+hi def link sensorsLineContinue Special
+hi def link sensorsNumber       Number
+hi def link sensorsRealWorld    Identifier
+hi def link sensorsOperator     Normal
+hi def link sensorsDelimiter    Normal
+
+let b:current_syntax = "sensors"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/services.vim b/runtime/syntax/services.vim
new file mode 100644
index 0000000..a2db7b1
--- /dev/null
+++ b/runtime/syntax/services.vim
@@ -0,0 +1,54 @@
+" Vim syntax file
+" Language:         services(5) - Internet network services list
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-06-30
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match   servicesBegin     display '^'
+                              \ nextgroup=servicesName,servicesComment
+
+syn match   servicesName      contained display '[[:graph:]]\+'
+                              \ nextgroup=servicesPort skipwhite
+
+syn match   servicesPort      contained display '\d\+'
+                              \ nextgroup=servicesPPDiv,servicesPPDivDepr
+                              \ skipwhite
+
+syn match   servicesPPDiv     contained display '/'
+                              \ nextgroup=servicesProtocol skipwhite
+
+syn match   servicesPPDivDepr contained display ','
+                              \ nextgroup=servicesProtocol skipwhite
+
+syn match   servicesProtocol  contained display '\S\+'
+                              \ nextgroup=servicesAliases,servicesComment
+                              \ skipwhite
+
+syn match   servicesAliases   contained display '\S\+'
+                              \ nextgroup=servicesAliases,servicesComment
+                              \ skipwhite
+
+syn keyword servicesTodo      contained TODO FIXME XXX NOTE
+
+syn region  servicesComment   display oneline start='#' end='$'
+                              \ contains=servicesTodo,@Spell
+
+hi def link servicesTodo      Todo
+hi def link servicesComment   Comment
+hi def link servicesName      Identifier
+hi def link servicesPort      Number
+hi def link servicesPPDiv     Delimiter
+hi def link servicesPPDivDepr Error
+hi def link servicesProtocol  Type
+hi def link servicesAliases   Macro
+
+let b:current_syntax = "services"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/setserial.vim b/runtime/syntax/setserial.vim
new file mode 100644
index 0000000..6d410f5
--- /dev/null
+++ b/runtime/syntax/setserial.vim
@@ -0,0 +1,120 @@
+" Vim syntax file
+" Language:         setserial(8) configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-04
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match   setserialBegin      display '^'
+                                \ nextgroup=setserialDevice,setserialComment
+                                \ skipwhite
+
+syn match   setserialDevice     contained display '\%(/[^ \t/]*\)\+'
+                                \ nextgroup=setserialParameter skipwhite
+
+syn keyword setserialParameter  contained port irq baud_base divisor
+                                \ close_delay closing_wait rx_trigger
+                                \ tx_trigger flow_off flow_on rx_timeout
+                                \ nextgroup=setserialNumber skipwhite
+
+syn keyword setserialParameter  contained uart
+                                \ nextgroup=setserialUARTType skipwhite
+
+syn keyword setserialParameter  contained autoconfig auto_irq skip_test
+                                \ spd_hi spd_vhi spd_shi spd_warp spd_cust
+                                \ spd_normal sak fourport session_lockout
+                                \ pgrp_lockout hup_notify split_termios
+                                \ callout_nohup low_latency
+                                \ nextgroup=setserialParameter skipwhite
+
+syn match   setserialParameter  contained display
+                                \ '\^\%(auto_irq\|skip_test\|sak\|fourport\)'
+                                \ contains=setserialNegation
+                                \ nextgroup=setserialParameter skipwhite
+
+syn match   setserialParameter  contained display
+                                \ '\^\%(session_lockout\|pgrp_lockout\)'
+                                \ contains=setserialNegation
+                                \ nextgroup=setserialParameter skipwhite
+
+syn match   setserialParameter  contained display
+                                \ '\^\%(hup_notify\|split_termios\)'
+                                \ contains=setserialNegation
+                                \ nextgroup=setserialParameter skipwhite
+
+syn match   setserialParameter  contained display
+                                \ '\^\%(callout_nohup\|low_latency\)'
+                                \ contains=setserialNegation
+                                \ nextgroup=setserialParameter skipwhite
+
+syn keyword setserialParameter  contained set_multiport
+                                \ nextgroup=setserialMultiport skipwhite
+
+syn match   setserialNumber     contained display '\<\d\+\>'
+                                \ nextgroup=setserialParameter skipwhite
+syn match   setserialNumber     contained display '0x\x\+'
+                                \ nextgroup=setserialParameter skipwhite
+
+syn keyword setserialUARTType   contained none
+
+syn match   setserialUARTType   contained display
+                                \ '8250\|16[4789]50\|16550A\=\|16650\%(V2\)\='
+                                \ nextgroup=setserialParameter skipwhite
+
+syn match   setserialUARTType   contained display '166[59]4'
+                                \ nextgroup=setserialParameter skipwhite
+
+syn match   setserialNegation   contained display '\^'
+
+syn match   setserialMultiport  contained '\<port\d\+\>'
+                                \ nextgroup=setserialPort skipwhite
+
+syn match   setserialPort       contained display '\<\d\+\>'
+                                \ nextgroup=setserialMask skipwhite
+syn match   setserialPort       contained display '0x\x\+'
+                                \ nextgroup=setserialMask skipwhite
+
+syn match   setserialMask       contained '\<mask\d\+\>'
+                                \ nextgroup=setserialBitMask skipwhite
+
+syn match   setserialBitMask    contained display '\<\d\+\>'
+                                \ nextgroup=setserialMatch skipwhite
+syn match   setserialBitMask    contained display '0x\x\+'
+                                \ nextgroup=setserialMatch skipwhite
+
+syn match   setserialMatch      contained '\<match\d\+\>'
+                                \ nextgroup=setserialMatchBits skipwhite
+
+syn match   setserialMatchBits  contained display '\<\d\+\>'
+                                \ nextgroup=setserialMultiport skipwhite
+syn match   setserialMatchBits  contained display '0x\x\+'
+                                \ nextgroup=setserialMultiport skipwhite
+
+syn keyword setserialTodo       contained TODO FIXME XXX NOTE
+
+syn region  setserialComment    display oneline start='^\s*#' end='$'
+                                \ contains=setserialTodo,@Spell
+
+hi def link setserialTodo       Todo
+hi def link setserialComment    Comment
+hi def link setserialDevice     Normal
+hi def link setserialParameter  Identifier
+hi def link setserialNumber     Number
+hi def link setserialUARTType   Type
+hi def link setserialNegation   Operator
+hi def link setserialMultiport  Type
+hi def link setserialPort       setserialNumber
+hi def link setserialMask       Type
+hi def link setserialBitMask    setserialNumber
+hi def link setserialMatch      Type
+hi def link setserialMatchBits  setserialNumber
+
+let b:current_syntax = "setserial"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/sieve.vim b/runtime/syntax/sieve.vim
index 1ce6713..fa369fc 100644
--- a/runtime/syntax/sieve.vim
+++ b/runtime/syntax/sieve.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Sieve filtering language input file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,9 +12,8 @@
 
 syn keyword sieveTodo         contained TODO FIXME XXX NOTE
 
-syn region  sieveComment      matchgroup=sieveComment start='/\*' end='\*/'
-                              \ contains=sieveTodo,@Spell
-syn region  sieveComment      matchgroup=sieveComment start='#' end='$'
+syn region  sieveComment      start='/\*' end='\*/' contains=sieveTodo,@Spell
+syn region  sieveComment      display oneline start='#' end='$'
                               \ contains=sieveTodo,@Spell
 
 syn case ignore
@@ -25,9 +24,9 @@
 
 syn match   sieveSpecial      display '\\["\\]'
 
-syn region  sieveString       matchgroup=sieveString start=+"+
-                              \ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial
-syn region  sieveString       matchgroup=sieveString start='text:' end='\n.\n'
+syn region  sieveString       start=+"+ skip=+\\\\\|\\"+ end=+"+
+                              \ contains=sieveSpecial
+syn region  sieveString       start='text:' end='\n.\n'
 
 syn keyword sieveConditional  if elsif else
 syn keyword sieveTest         address allof anyof envelope exists false header
diff --git a/runtime/syntax/slpconf.vim b/runtime/syntax/slpconf.vim
new file mode 100644
index 0000000..4b3c5a1
--- /dev/null
+++ b/runtime/syntax/slpconf.vim
@@ -0,0 +1,273 @@
+" Vim syntax file
+" Language:         RFC 2614 - An API for Service Location configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-04
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword slpconfTodo         contained TODO FIXME XXX NOTE
+
+syn region  slpconfComment      display oneline start='^[#;]' end='$'
+                                \ contains=slpconfTodo,@Spell
+
+syn match   slpconfBegin        display '^'
+                                \ nextgroup=slpconfTag,
+                                \ slpconfComment skipwhite
+
+syn keyword slpconfTag          contained net
+                                \ nextgroup=slpconfNetTagDot
+
+syn match   slpconfNetTagDot    contained display '.'
+                                \ nextgroup=slpconfNetTag
+
+syn keyword slpconfNetTag       contained slp
+                                \ nextgroup=slpconfNetSlpTagdot
+
+syn match   slpconfNetSlpTagDot contained display '.'
+                                \ nextgroup=slpconfNetSlpTag
+
+syn keyword slpconfNetSlpTag    contained isDA traceDATraffic traceMsg
+                                \ traceDrop traceReg isBroadcastOnly
+                                \ passiveDADetection securityEnabled
+                                \ nextgroup=slpconfBooleanEq,slpconfBooleanHome
+                                \ skipwhite
+
+syn match   slpconfBooleanHome  contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfBooleanEq skipwhite
+
+syn match   slpconfBooleanEq    contained display '='
+                                \ nextgroup=slpconfBoolean skipwhite
+
+syn keyword slpconfBoolean      contained true false TRUE FALSE
+
+syn keyword slpconfNetSlpTag    contained DAHeartBeat multicastTTL
+                                \ DAActiveDiscoveryInterval
+                                \ multicastMaximumWait multicastTimeouts
+                                \ randomWaitBound MTU maxResults
+                                \ nextgroup=slpconfIntegerEq,slpconfIntegerHome
+                                \ skipwhite
+
+syn match   slpconfIntegerHome  contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfIntegerEq skipwhite
+
+syn match   slpconfIntegerEq    contained display '='
+                                \ nextgroup=slpconfInteger skipwhite
+
+syn match   slpconfInteger      contained display '\<\d\+\>'
+
+syn keyword slpconfNetSlpTag    contained DAAttributes SAAttributes
+                                \ nextgroup=slpconfAttrEq,slpconfAttrHome
+                                \ skipwhite
+
+syn match   slpconfAttrHome     contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfAttrEq skipwhite
+
+syn match   slpconfAttrEq       contained display '='
+                                \ nextgroup=slpconfAttrBegin skipwhite
+
+syn match   slpconfAttrBegin    contained display '('
+                                \ nextgroup=slpconfAttrTag skipwhite
+
+syn match   slpconfAttrTag      contained display
+                                \ '[^* \t_(),\\!<=>~[:cntrl:]]\+'
+                                \ nextgroup=slpconfAttrTagEq skipwhite
+
+syn match   slpconfAttrTagEq    contained display '='
+                                \ nextgroup=@slpconfAttrValue skipwhite
+
+syn cluster slpconfAttrValueCon contains=slpconfAttrValueSep,slpconfAttrEnd
+
+syn cluster slpconfAttrValue    contains=slpconfAttrIValue,slpconfAttrSValue,
+                                \ slpconfAttrBValue,slpconfAttrSSValue
+
+syn match   slpconfAttrSValue   contained display '[^ (),\\!<=>~[:cntrl:]]\+'
+                                \ nextgroup=@slpconfAttrValueCon skipwhite
+
+syn match   slpconfAttrSSValue  contained display '\\FF\%(\\\x\x\)\+'
+                                \ nextgroup=@slpconfAttrValueCon skipwhite
+
+syn match   slpconfAttrIValue   contained display '[-]\=\d\+\>'
+                                \ nextgroup=@slpconfAttrValueCon skipwhite
+
+syn keyword slpconfAttrBValue   contained true false
+                                \ nextgroup=@slpconfAttrValueCon skipwhite
+
+syn match   slpconfAttrValueSep contained display ','
+                                \ nextgroup=@slpconfAttrValue skipwhite
+
+syn match   slpconfAttrEnd      contained display ')'
+                                \ nextgroup=slpconfAttrSep skipwhite
+
+syn match   slpconfAttrSep      contained display ','
+                                \ nextgroup=slpconfAttrBegin skipwhite
+
+syn keyword slpconfNetSlpTag    contained useScopes typeHint
+                                \ nextgroup=slpconfStringsEq,slpconfStringsHome
+                                \ skipwhite
+
+syn match   slpconfStringsHome  contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfStringsEq skipwhite
+
+syn match   slpconfStringsEq    contained display '='
+                                \ nextgroup=slpconfStrings skipwhite
+
+syn match   slpconfStrings      contained display
+                                \ '\%([[:digit:][:alpha:]]\|[!-+./:-@[-`{-~-]\|\\\x\x\)\+'
+                                \ nextgroup=slpconfStringsSep skipwhite
+
+syn match   slpconfStringsSep   contained display ','
+                                \ nextgroup=slpconfStrings skipwhite
+
+syn keyword slpconfNetSlpTag    contained DAAddresses
+                                \ nextgroup=slpconfAddressesEq,slpconfAddrsHome
+                                \ skipwhite
+
+syn match   slpconfAddrsHome    contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfAddressesEq skipwhite
+
+syn match   slpconfAddressesEq  contained display '='
+                                \ nextgroup=@slpconfAddresses skipwhite
+
+syn cluster slpconfAddresses    contains=slpconfFQDNs,slpconfHostnumbers
+
+syn match   slpconfFQDNs        contained display
+                                \ '\a[[:alnum:]-]*[[:alnum:]]\|\a'
+                                \ nextgroup=slpconfAddressesSep skipwhite
+
+syn match   slpconfHostnumbers  contained display
+                                \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfAddressesSep skipwhite
+
+syn match   slpconfAddressesSep contained display ','
+                                \ nextgroup=@slpconfAddresses skipwhite
+
+syn keyword slpconfNetSlpTag    contained serializedRegURL
+                                \ nextgroup=slpconfStringEq,slpconfStringHome
+                                \ skipwhite
+
+syn match   slpconfStringHome   contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfStringEq skipwhite
+
+syn match   slpconfStringEq     contained display '='
+                                \ nextgroup=slpconfString skipwhite
+
+syn match   slpconfString       contained display
+                                \ '\%([!-+./:-@[-`{-~-]\|\\\x\x\)\+\|[[:digit:][:alpha:]]'
+
+syn keyword slpconfNetSlpTag    contained multicastTimeouts DADiscoveryTimeouts
+                                \ datagramTimeouts
+                                \ nextgroup=slpconfIntegersEq,
+                                \ slpconfIntegersHome skipwhite
+
+syn match   slpconfIntegersHome contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfIntegersEq skipwhite
+
+syn match   slpconfIntegersEq   contained display '='
+                                \ nextgroup=slpconfIntegers skipwhite
+
+syn match   slpconfIntegers     contained display '\<\d\+\>'
+                                \ nextgroup=slpconfIntegersSep skipwhite
+
+syn match   slpconfIntegersSep  contained display ','
+                                \ nextgroup=slpconfIntegers skipwhite
+
+syn keyword slpconfNetSlpTag    contained interfaces
+                                \ nextgroup=slpconfHostnumsEq,
+                                \ slpconfHostnumsHome skipwhite
+
+syn match   slpconfHostnumsHome contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfHostnumsEq skipwhite
+
+syn match   slpconfHostnumsEq   contained display '='
+                                \ nextgroup=slpconfOHostnumbers skipwhite
+
+syn match   slpconfOHostnumbers contained display
+                                \ '\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfHostnumsSep skipwhite
+
+syn match   slpconfHostnumsSep  contained display ','
+                                \ nextgroup=slpconfOHostnumbers skipwhite
+
+syn keyword slpconfNetSlpTag    contained locale
+                                \ nextgroup=slpconfLocaleEq,slpconfLocaleHome
+                                \ skipwhite
+
+syn match   slpconfLocaleHome   contained display
+                                \ '\.\d\{1,3}\%(\.\d\{1,3}\)\{3}'
+                                \ nextgroup=slpconfLocaleEq skipwhite
+
+syn match   slpconfLocaleEq     contained display '='
+                                \ nextgroup=slpconfLocale skipwhite
+
+syn match   slpconfLocale       contained display '\a\{1,8}\%(-\a\{1,8}\)\='
+
+hi def link slpconfTodo         Todo
+hi def link slpconfComment      Comment
+hi def link slpconfTag          Identifier
+hi def link slpconfDelimiter    Delimiter
+hi def link slpconfNetTagDot    slpconfDelimiter
+hi def link slpconfNetTag       slpconfTag
+hi def link slpconfNetSlpTagDot slpconfNetTagDot
+hi def link slpconfNetSlpTag    slpconfTag
+hi def link slpconfHome         Special
+hi def link slpconfBooleanHome  slpconfHome
+hi def link slpconfEq           Operator
+hi def link slpconfBooleanEq    slpconfEq
+hi def link slpconfBoolean      Boolean
+hi def link slpconfIntegerHome  slpconfHome
+hi def link slpconfIntegerEq    slpconfEq
+hi def link slpconfInteger      Number
+hi def link slpconfAttrHome     slpconfHome
+hi def link slpconfAttrEq       slpconfEq
+hi def link slpconfAttrBegin    slpconfDelimiter
+hi def link slpconfAttrTag      slpconfTag
+hi def link slpconfAttrTagEq    slpconfEq
+hi def link slpconfAttrIValue   slpconfInteger
+hi def link slpconfAttrSValue   slpconfString
+hi def link slpconfAttrBValue   slpconfBoolean
+hi def link slpconfAttrSSValue  slpconfString
+hi def link slpconfSeparator    slpconfDelimiter
+hi def link slpconfAttrValueSep slpconfSeparator
+hi def link slpconfAttrEnd      slpconfAttrBegin
+hi def link slpconfAttrSep      slpconfSeparator
+hi def link slpconfStringsHome  slpconfHome
+hi def link slpconfStringsEq    slpconfEq
+hi def link slpconfStrings      slpconfString
+hi def link slpconfStringsSep   slpconfSeparator
+hi def link slpconfAddrsHome    slpconfHome
+hi def link slpconfAddressesEq  slpconfEq
+hi def link slpconfFQDNs        String
+hi def link slpconfHostnumbers  Number
+hi def link slpconfAddressesSep slpconfSeparator
+hi def link slpconfStringHome   slpconfHome
+hi def link slpconfStringEq     slpconfEq
+hi def link slpconfString       String
+hi def link slpconfIntegersHome slpconfHome
+hi def link slpconfIntegersEq   slpconfEq
+hi def link slpconfIntegers     slpconfInteger
+hi def link slpconfIntegersSep  slpconfSeparator
+hi def link slpconfHostnumsHome slpconfHome
+hi def link slpconfHostnumsEq   slpconfEq
+hi def link slpconfOHostnumbers slpconfHostnumbers
+hi def link slpconfHostnumsSep  slpconfSeparator
+hi def link slpconfLocaleHome   slpconfHome
+hi def link slpconfLocaleEq     slpconfEq
+hi def link slpconfLocale       slpconfString
+
+let b:current_syntax = "slpconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/slpreg.vim b/runtime/syntax/slpreg.vim
new file mode 100644
index 0000000..c4e16a9
--- /dev/null
+++ b/runtime/syntax/slpreg.vim
@@ -0,0 +1,122 @@
+" Vim syntax file
+" Language:         RFC 2614 - An API for Service Location registration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-04
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword slpregTodo          contained TODO FIXME XXX NOTE
+
+syn region  slpregComment       display oneline start='^[#;]' end='$'
+                                \ contains=slpregTodo,@Spell
+
+syn match   slpregBegin         display '^'
+                                \ nextgroup=slpregServiceURL,
+                                \ slpregComment
+
+syn match   slpregServiceURL    contained display 'service:'
+                                \ nextgroup=slpregServiceType
+
+syn match   slpregServiceType   contained display '\a[[:alpha:][:digit:]+-]*\%(\.\a[[:alpha:][:digit:]+-]*\)\=\%(:\a[[:alpha:][:digit:]+-]*\)\='
+                                \ nextgroup=slpregServiceSAPCol
+
+syn match   slpregServiceSAPCol contained display ':'
+                                \ nextgroup=slpregSAP
+
+syn match   slpregSAP           contained '[^,]\+'
+                                \ nextgroup=slpregLangSep
+"syn match   slpregSAP           contained display '\%(//\%(\%([[:alpha:][:digit:]$-_.~!*\'(),+;&=]*@\)\=\%([[:alnum:]][[:alnum:]-]*[[:alnum:]]\|[[:alnum:]]\.\)*\%(\a[[:alnum:]-]*[[:alnum:]]\|\a\)\%(:\d\+\)\=\)\=\|/at/\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}:\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\%([[:alpha:][:digit:]$-_.~]\|\\\x\x\)\{1,31}\|/ipx/\x\{8}:\x\{12}:\x\{4}\)\%(/\%([[:alpha:][:digit:]$-_.~!*\'()+;?:@&=+]\|\\\x\x\)*\)*\%(;[^()\\!<=>~[:cntrl:]* \t_]\+\%(=[^()\\!<=>~[:cntrl:] ]\+\)\=\)*'
+
+syn match   slpregLangSep       contained display ','
+                                \ nextgroup=slpregLang
+
+syn match   slpregLang          contained display '\a\{1,8}\%(-\a\{1,8\}\)\='
+                                \ nextgroup=slpregLTimeSep
+
+syn match   slpregLTimeSep      contained display ','
+                                \ nextgroup=slpregLTime
+
+syn match   slpregLTime         contained display '\d\{1,5}'
+                                \ nextgroup=slpregType,slpregUNewline
+
+syn match   slpregType          contained display '\a[[:alpha:][:digit:]+-]*'
+                                \ nextgroup=slpregUNewLine
+
+syn match   slpregUNewLine      contained '\s*\n'
+                                \ nextgroup=slpregScopes,slpregAttrList skipnl
+
+syn keyword slpregScopes        contained scopes
+                                \ nextgroup=slpregScopesEq
+
+syn match   slpregScopesEq      contained '=' nextgroup=slpregScopeName
+
+syn match   slpregScopeName     contained '[^(),\\!<=>[:cntrl:];*+ ]\+'
+                                \ nextgroup=slpregScopeNameSep,
+                                \ slpregScopeNewline
+
+syn match   slpregScopeNameSep  contained ','
+                                \ nextgroup=slpregScopeName
+
+syn match   slpregScopeNewline  contained '\s*\n'
+                                \ nextgroup=slpregAttribute skipnl
+
+syn match   slpregAttribute     contained '[^(),\\!<=>[:cntrl:]* \t_]\+'
+                                \ nextgroup=slpregAttributeEq,
+                                \ slpregScopeNewline
+
+syn match   slpregAttributeEq   contained '='
+                                \ nextgroup=@slpregAttrValue
+
+syn cluster slpregAttrValueCon  contains=slpregAttribute,slpregAttrValueSep
+
+syn cluster slpregAttrValue     contains=slpregAttrIValue,slpregAttrSValue,
+                                \ slpregAttrBValue,slpregAttrSSValue
+
+syn match   slpregAttrSValue    contained display '[^(),\\!<=>~[:cntrl:]]\+'
+                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl
+
+syn match   slpregAttrSSValue   contained display '\\FF\%(\\\x\x\)\+'
+                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl
+
+syn match   slpregAttrIValue    contained display '[-]\=\d\+\>'
+                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl
+
+syn keyword slpregAttrBValue    contained true false
+                                \ nextgroup=@slpregAttrValueCon skipwhite skipnl
+
+syn match   slpregAttrValueSep  contained display ','
+                                \ nextgroup=@slpregAttrValue skipwhite skipnl
+
+hi def link slpregTodo          Todo
+hi def link slpregComment       Comment
+hi def link slpregServiceURL    Type
+hi def link slpregServiceType   slpregServiceURL
+hi def link slpregServiceSAPCol slpregServiceURL
+hi def link slpregSAP           slpregServiceURL
+hi def link slpregDelimiter     Delimiter
+hi def link slpregLangSep       slpregDelimiter
+hi def link slpregLang          String
+hi def link slpregLTimeSep      slpregDelimiter
+hi def link slpregLTime         Number
+hi def link slpregType          Type
+hi def link slpregScopes        Identifier
+hi def link slpregScopesEq      Operator
+hi def link slpregScopeName     String
+hi def link slpregScopeNameSep  slpregDelimiter
+hi def link slpregAttribute     Identifier
+hi def link slpregAttributeEq   Operator
+hi def link slpregAttrSValue    String
+hi def link slpregAttrSSValue   slpregAttrSValue
+hi def link slpregAttrIValue    Number
+hi def link slpregAttrBValue    Boolean
+hi def link slpregAttrValueSep  slpregDelimiter
+
+let b:current_syntax = "slpreg"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/slpspi.vim b/runtime/syntax/slpspi.vim
new file mode 100644
index 0000000..e6d0c15
--- /dev/null
+++ b/runtime/syntax/slpspi.vim
@@ -0,0 +1,39 @@
+" Vim syntax file
+" Language:         RFC 2614 - An API for Service Location SPI file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-04
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword slpspiTodo          contained TODO FIXME XXX NOTE
+
+syn region  slpspiComment       display oneline start='^[#;]' end='$'
+                                \ contains=slpspiTodo,@Spell
+
+syn match   slpspiBegin         display '^'
+                                \ nextgroup=slpspiKeyType,
+                                \ slpspiComment skipwhite
+
+syn keyword slpspiKeyType       contained PRIVATE PUBLIC
+                                \ nextgroup=slpspiString skipwhite
+
+syn match   slpspiString        contained '\S\+'
+                                \ nextgroup=slpspiKeyFile skipwhite
+
+syn match   slpspiKeyFile       contained '\S\+'
+
+hi def link slpspiTodo          Todo
+hi def link slpspiComment       Comment
+hi def link slpspiKeyType       Type
+hi def link slpspiString        Identifier
+hi def link slpspiKeyFile       String
+
+let b:current_syntax = "slpspi"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index e197ca2..81d808f 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         sudoers(5) configuration files
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -23,7 +23,7 @@
 
 syn keyword sudoersTodo               contained TODO FIXME XXX NOTE
 
-syn region  sudoersComment            matchgroup=sudoersComment start='#' end='$' contains=sudoersTodo
+syn region  sudoersComment            display oneline start='#' end='$' contains=sudoersTodo
 
 syn keyword sudoersAlias              User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
 syn keyword sudoersAlias              Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
diff --git a/runtime/syntax/terminfo.vim b/runtime/syntax/terminfo.vim
index c83a3a3..9fd7845 100644
--- a/runtime/syntax/terminfo.vim
+++ b/runtime/syntax/terminfo.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         terminfo(5) definition
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -14,7 +14,7 @@
 
 syn keyword terminfoTodo        contained TODO FIXME XXX NOTE
 
-syn region  terminfoComment     matchgroup=terminfoComment start='^#' end='$'
+syn region  terminfoComment     display oneline start='^#' end='$'
                                 \ contains=terminfoTodo,@Spell
 
 syn match   terminfoNumbers     '\<[0-9]\+\>'
diff --git a/runtime/syntax/udevconf.vim b/runtime/syntax/udevconf.vim
new file mode 100644
index 0000000..487a8ac
--- /dev/null
+++ b/runtime/syntax/udevconf.vim
@@ -0,0 +1,39 @@
+" Vim syntax file
+" Language:         udev(8) configuration file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-01
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword udevconfTodo        contained TODO FIXME XXX NOTE
+
+syn region  udevconfComment     display oneline start='^\s*#' end='$'
+                                \ contains=udevconfTodo,@Spell
+
+syn match   udevconfBegin       display '^'
+                                \ nextgroup=udevconfVariable,udevconfComment
+                                \ skipwhite
+
+syn keyword udevconfVariable    contained udev_root udev_db udev_rules udev_log
+                                \ nextgroup=udevconfVariableEq
+
+syn match   udevconfVariableEq  contained '[[:space:]=]'
+                                \ nextgroup=udevconfString skipwhite
+
+syn region  udevconfString      contained display oneline start=+"+ end=+"+
+
+hi def link udevconfTodo        Todo
+hi def link udevconfComment     Comment
+hi def link udevconfVariable    Identifier
+hi def link udevconfVariableEq  Operator
+hi def link udevconfString      String
+
+let b:current_syntax = "udevconf"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/udevperm.vim b/runtime/syntax/udevperm.vim
new file mode 100644
index 0000000..c2029a4
--- /dev/null
+++ b/runtime/syntax/udevperm.vim
@@ -0,0 +1,69 @@
+" Vim syntax file
+" Language:         udev(8) permissions file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-01
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn match   udevpermBegin       display '^' nextgroup=udevpermDevice
+
+syn match   udevpermDevice      contained display '[^:]\+'
+                                \ contains=udevpermPattern
+                                \ nextgroup=udevpermUserColon
+
+syn match   udevpermPattern     contained '[*?]'
+syn region  udevpermPattern     contained start='\[!\=' end='\]'
+                                \ contains=udevpermPatRange
+
+syn match   udevpermPatRange    contained '[^[-]-[^]-]'
+
+syn match   udevpermUserColon   contained display ':'
+                                \ nextgroup=udevpermUser
+
+syn match   udevpermUser        contained display '[^:]\+'
+                                \ nextgroup=udevpermGroupColon
+
+syn match   udevpermGroupColon  contained display ':'
+                                \ nextgroup=udevpermGroup
+
+syn match   udevpermGroup       contained display '[^:]\+'
+                                \ nextgroup=udevpermPermColon
+
+syn match   udevpermPermColon   contained display ':'
+                                \ nextgroup=udevpermPerm
+
+syn match   udevpermPerm        contained display '\<0\=\o\+\>'
+                                \ contains=udevpermOctalZero
+
+syn match   udevpermOctalZero   contained display '\<0'
+syn match   udevpermOctalError  contained display '\<0\o*[89]\d*\>'
+
+syn keyword udevpermTodo        contained TODO FIXME XXX NOTE
+
+syn region  udevpermComment     display oneline start='^\s*#' end='$'
+                                \ contains=udevpermTodo,@Spell
+
+hi def link udevpermTodo        Todo
+hi def link udevpermComment     Comment
+hi def link udevpermDevice      String
+hi def link udevpermPattern     SpecialChar
+hi def link udevpermPatRange    udevpermPattern
+hi def link udevpermColon       Normal
+hi def link udevpermUserColon   udevpermColon
+hi def link udevpermUser        Identifier
+hi def link udevpermGroupColon  udevpermColon
+hi def link udevpermGroup       Type
+hi def link udevpermPermColon   udevpermColon
+hi def link udevpermPerm        Number
+hi def link udevpermOctalZero   PreProc
+hi def link udevpermOctalError  Error
+
+let b:current_syntax = "udevperm"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/udevrules.vim b/runtime/syntax/udevrules.vim
new file mode 100644
index 0000000..7deac2a
--- /dev/null
+++ b/runtime/syntax/udevrules.vim
@@ -0,0 +1,117 @@
+" Vim syntax file
+" Language:         udev(8) rules file
+" Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
+" Latest Revision:  2005-07-04
+
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn keyword udevrulesTodo       contained TODO FIXME XXX NOTE
+
+syn region  udevrulesComment    display oneline start='^\s*#' end='$'
+                                \ contains=udevrulesTodo,@Spell
+
+syn keyword udevrulesRuleKey    BUS KERNEL SUBSYSTEM DRIVER ID RESULT
+                                \ nextgroup=udevrulesRuleEq
+
+syn keyword udevrulesRuleKey    SYSFS nextgroup=udevrulesSysFSPath
+
+syn region  udevrulesSysFSPath  display transparent
+                                \ matchgroup=udevrulesDelimiter start='{'
+                                \ matchgroup=udevrulesDelimiter end='}'
+                                \ contains=udevrulesPath
+                                \ nextgroup=udevrulesRuleEq
+
+syn keyword udevrulesRuleKey    ENV nextgroup=udevrulesEnvVar
+
+syn region  udevrulesEnvVar     display transparent
+                                \ matchgroup=udevrulesDelimiter start='{'
+                                \ matchgroup=udevrulesDelimiter end='}'
+                                \ contains=udevrulesVariable
+                                \ nextgroup=udevrulesRuleEq
+
+syn keyword udevrulesRuleKey    PROGRAM
+                                \ nextgroup=udevrulesEStringEq
+
+syn keyword udevrulesAssignKey  NAME SYMLINK OWNER GROUP
+                                \ nextgroup=udevrulesEStringEq
+
+syn keyword udevrulesAssignKey  MODE
+                                \ nextgroup=udevrulesRuleEq
+
+syn keyword udevrulesAssignKey  OPTIONS
+                                \ nextgroup=udevrulesOptionsEq
+
+syn match   udevrulesPath       contained display '[^}]\+'
+
+syn match   udevrulesVariable   contained display '[^}]\+'
+
+syn match   udevrulesRuleEq     contained '[[:space:]=]'
+                                \ nextgroup=udevrulesString skipwhite
+
+syn match   udevrulesEStringEq  contained '[[:space:]=]'
+                                \ nextgroup=udevrulesEString skipwhite
+
+syn match   udevrulesOptionsEq  contained '[[:space:]=]'
+                                \ nextgroup=udevrulesOptions skipwhite
+
+syn region  udevrulesEString    contained display oneline start=+"+ end=+"+
+                                \ contains=udevrulesStrEscapes
+
+syn match   udevrulesStrEscapes contained '%[nkpMmbcNPe%]'
+
+syn region  udevrulesStrEscapes contained start='%c{' end='}'
+                                \ contains=udevrulesStrNumber
+
+syn region  udevrulesStrEscapes contained start='%s{' end='}'
+                                \ contains=udevrulesPath
+
+syn match   udevrulesStrNumber  contained '\d\++\='
+
+syn region  udevrulesString     contained display oneline start=+"+ end=+"+
+                                \ contains=udevrulesPattern
+
+syn match   udevrulesPattern    contained '[*?]'
+syn region  udevrulesPattern    contained start='\[!\=' end='\]'
+                                \ contains=udevrulesPatRange
+
+syn match   udevrulesPatRange   contained '[^[-]-[^]-]'
+
+syn region  udevrulesOptions    contained display oneline start=+"+ end=+"+
+                                \ contains=udevrulesOption,udevrulesOptionSep
+
+syn keyword udevrulesOption     contained last_rule ignore_device ignore_remove
+                                \ all_partitions
+
+syn match   udevrulesOptionSep  contained ','
+
+hi def link udevrulesTodo       Todo
+hi def link udevrulesComment    Comment
+hi def link udevrulesRuleKey    Keyword
+hi def link udevrulesDelimiter  Delimiter
+hi def link udevrulesAssignKey  Identifier
+hi def link udevrulesPath       Identifier
+hi def link udevrulesVariable   Identifier
+" XXX: setting this to Operator makes for extremely intense highlighting.
+hi def link udevrulesEq         Normal
+hi def link udevrulesRuleEq     udevrulesEq
+hi def link udevrulesEStringEq  udevrulesEq
+hi def link udevrulesOptionsEq  udevrulesEq
+hi def link udevrulesEString    udevrulesString
+hi def link udevrulesStrEscapes SpecialChar
+hi def link udevrulesStrNumber  Number
+hi def link udevrulesString     String
+hi def link udevrulesPattern    SpecialChar
+hi def link udevrulesPatRange   SpecialChar
+hi def link udevrulesOptions    udevrulesString
+hi def link udevrulesOption     Type
+hi def link udevrulesOptionSep  Delimiter
+
+let b:current_syntax = "udevrules"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/syntax/updatedb.vim b/runtime/syntax/updatedb.vim
index 91c335d..e2b7903 100644
--- a/runtime/syntax/updatedb.vim
+++ b/runtime/syntax/updatedb.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         updatedb.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -23,9 +23,7 @@
 
 syn match   updatedbNameEq  contained display '=' nextgroup=updatedbValue
 
-syn region  updatedbValue   contained display oneline
-                            \ matchgroup=updatedbValue start='"'
-                            \ matchgroup=updatedbValue end='"'
+syn region  updatedbValue   contained display oneline start='"' end='"'
 
 hi def link updatedbTodo    Todo
 hi def link updatedbComment Comment
diff --git a/runtime/syntax/xinetd.vim b/runtime/syntax/xinetd.vim
index d9753ff..e8e57be 100644
--- a/runtime/syntax/xinetd.vim
+++ b/runtime/syntax/xinetd.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         xinetd.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-06-30
 
 if exists("b:current_syntax")
   finish
diff --git a/runtime/syntax/xmodmap.vim b/runtime/syntax/xmodmap.vim
index cf60c47..2b097df 100644
--- a/runtime/syntax/xmodmap.vim
+++ b/runtime/syntax/xmodmap.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         xmodmap(1) definition file
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-29
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,8 +12,8 @@
 
 syn keyword xmodmapTodo       contained TODO FIXME XXX NOTE
 
-syn region  xmodmapComment    display oneline matchgroup=xmodmapComment
-                              \ start=/^!/ end=/$/ contains=xmodmapTodo,@Spell
+syn region  xmodmapComment    display oneline start='^!' end='$'
+                              \ contains=xmodmapTodo,@Spell
 
 syn case ignore
 syn match   xmodmapInt        display '\<\d\+\>'
diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim
index 1be00ee..5a94fb6 100644
--- a/runtime/syntax/yaml.vim
+++ b/runtime/syntax/yaml.vim
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         YAML (YAML Ain't Markup Language)
 " Maintainer:       Nikolai Weibull <nikolai+work.vim@bitwi.se>
-" Latest Revision:  2005-06-27
+" Latest Revision:  2005-07-04
 
 if exists("b:current_syntax")
   finish
@@ -12,8 +12,8 @@
 
 syn keyword yamlTodo            contained TODO FIXME XXX NOTE
 
-syn region  yamlComment         matchgroup=yamlComment start='\%(^\|\s\)#'
-                                \ end='$' contains=yamlTodo,@Spell
+syn region  yamlComment         display oneline start='\%(^\|\s\)#' end='$'
+                                \ contains=yamlTodo,@Spell
 
 syn match   yamlNodeProperty    '!\%(![^\\^%     ]\+\|[^!][^:/   ]*\)'