diff --git a/runtime/syntax/wml.vim b/runtime/syntax/wml.vim
new file mode 100644
index 0000000..5957930
--- /dev/null
+++ b/runtime/syntax/wml.vim
@@ -0,0 +1,172 @@
+" Vim syntax file
+" Language:     WML - Website MetaLanguage
+" Maintainer:   Gerfried Fuchs <alfie@ist.org>
+" Filenames:    *.wml
+" Last Change:  07 Feb 2002
+" URL:		http://alfie.ist.org/software/vim/syntax/wml.vim
+"
+" Original Version: Craig Small <csmall@eye-net.com.au>
+
+" Comments are very welcome - but please make sure that you are commenting on
+" the latest version of this file.
+" SPAM is _NOT_ welcome - be ready to be reported!
+
+"  If you are looking for the "Wireless Markup Language" syntax file,
+"  please take a look at the wap.vim file done by Ralf Schandl, soon in a
+"  vim-package around your corner :)
+
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syn clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+
+" A lot of the web stuff looks like HTML so we load that first
+if version < 600
+  so <sfile>:p:h/html.vim
+else
+  runtime! syntax/html.vim
+endif
+unlet b:current_syntax
+
+if !exists("main_syntax")
+  let main_syntax = 'wml'
+endif
+
+" special character
+syn match wmlNextLine	"\\$"
+
+" Redfine htmlTag
+syn clear htmlTag
+syn region  htmlTag  start=+<[^/<]+ end=+>+  contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition
+
+"
+" Add in extra Arguments used by wml
+syn keyword htmlTagName contained gfont imgbg imgdot lowsrc
+syn keyword htmlTagName contained navbar:define navbar:header
+syn keyword htmlTagName contained navbar:footer navbar:prolog
+syn keyword htmlTagName contained navbar:epilog navbar:button
+syn keyword htmlTagName contained navbar:filter navbar:debug
+syn keyword htmlTagName contained navbar:render
+syn keyword htmlTagName contained preload rollover
+syn keyword htmlTagName contained space hspace vspace over
+syn keyword htmlTagName contained ps ds pi ein big sc spaced headline
+syn keyword htmlTagName contained ue subheadline zwue verbcode
+syn keyword htmlTagName contained isolatin pod sdf text url verbatim
+syn keyword htmlTagName contained xtable
+syn keyword htmlTagName contained csmap fsview import box
+syn keyword htmlTagName contained case:upper case:lower
+syn keyword htmlTagName contained grid cell info lang: logo page
+syn keyword htmlTagName contained set-var restore
+syn keyword htmlTagName contained array:push array:show set-var ifdef
+syn keyword htmlTagName contained say m4 symbol dump enter divert
+syn keyword htmlTagName contained toc
+syn keyword htmlTagName contained wml card do refresh oneevent catch spawn
+
+"
+" The wml arguments
+syn keyword htmlArg contained adjust background base bdcolor bdspace
+syn keyword htmlArg contained bdwidth complete copyright created crop
+syn keyword htmlArg contained direction description domainname eperlfilter
+syn keyword htmlArg contained file hint imgbase imgstar interchar interline
+syn keyword htmlArg contained keephr keepindex keywords layout spacing
+syn keyword htmlArg contained padding nonetscape noscale notag notypo
+syn keyword htmlArg contained onload oversrc pos select slices style
+syn keyword htmlArg contained subselected txtcol_select txtcol_normal
+syn keyword htmlArg contained txtonly via
+syn keyword htmlArg contained mode columns localsrc ordered
+
+
+" Lines starting with an # are usually comments
+syn match   wmlComment     "^\s*#.*"
+" The different exceptions to comments
+syn match   wmlSharpBang   "^#!.*"
+syn match   wmlUsed	   contained "\s\s*[A-Za-z:_-]*"
+syn match   wmlUse	   "^\s*#\s*use\s\+" contains=wmlUsed
+syn match   wmlInclude	   "^\s*#\s*include.+"
+
+syn region  wmlBody	   contained start=+<<+ end=+>>+
+
+syn match   wmlLocationId  contained "[A-Za-z]\+"
+syn region  wmlLocation    start=+<<+ end=+>>+ contains=wmlLocationId
+"syn region  wmlLocation    start=+{#+ end=+#}+ contains=wmlLocationId
+"syn region  wmlLocationed  contained start=+<<+ end=+>>+ contains=wmlLocationId
+
+syn match   wmlDivert      "\.\.[a-zA-Z_]\+>>"
+syn match   wmlDivertEnd   "<<\.\."
+" new version
+"syn match   wmlDivert      "{#[a-zA-Z_]\+#:"
+"syn match   wmlDivertEnd   ":##}"
+
+syn match   wmlDefineName  contained "\s\+[A-Za-z-]\+"
+syn region  htmlTagName    start="\<\(define-tag\|define-region\)" end="\>" contains=wmlDefineName
+
+" The perl include stuff
+if main_syntax != 'perl'
+  " Perl script
+  if version < 600
+    syn include @wmlPerlScript <sfile>:p:h/perl.vim
+  else
+    syn include @wmlPerlScript syntax/perl.vim
+  endif
+  unlet b:current_syntax
+
+  syn region perlScript   start=+<perl>+ keepend end=+</perl>+ contains=@wmlPerlScript,wmlPerlTag
+" eperl between '<:' and ':>'  -- Alfie [1999-12-26]
+  syn region perlScript   start=+<:+ keepend end=+:>+ contains=@wmlPerlScript,wmlPerlTag
+  syn match    wmlPerlTag  contained "</*perl>" contains=wmlPerlTagN
+  syn keyword  wmlPerlTagN contained perl
+
+  hi link   wmlPerlTag  htmlTag
+  hi link   wmlPerlTagN htmlStatement
+endif
+
+" verbatim tags -- don't highlight anything in between  -- Alfie [2002-02-07]
+syn region  wmlVerbatimText start=+<verbatim>+ keepend end=+</verbatim>+ contains=wmlVerbatimTag
+syn match   wmlVerbatimTag  contained "</*verbatim>" contains=wmlVerbatimTagN
+syn keyword wmlVerbatimTagN contained verbatim
+hi link     wmlVerbatimTag  htmlTag
+hi link     wmlVerbatimTagN htmlStatement
+
+if main_syntax == "html"
+  syn sync match wmlHighlight groupthere NONE "</a-zA-Z]"
+  syn sync match wmlHighlight groupthere perlScript "<perl>"
+  syn sync match wmlHighlightSkip "^.*['\"].*$"
+  syn sync minlines=10
+endif
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_wml_syn_inits")
+  let did_wml_syn_inits = 1
+  if version < 508
+    let did_wml_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink wmlNextLine	Special
+  HiLink wmlUse		Include
+  HiLink wmlUsed	String
+  HiLink wmlBody	Special
+  HiLink wmlDiverted	Label
+  HiLink wmlDivert	Delimiter
+  HiLink wmlDivertEnd	Delimiter
+  HiLink wmlLocationId	Label
+  HiLink wmlLocation	Delimiter
+" HiLink wmlLocationed	Delimiter
+  HiLink wmlDefineName	String
+  HiLink wmlComment	Comment
+  HiLink wmlInclude	Include
+  HiLink wmlSharpBang	PreProc
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "wml"
