diff --git a/runtime/syntax/dtd.vim b/runtime/syntax/dtd.vim
new file mode 100644
index 0000000..0f80e19
--- /dev/null
+++ b/runtime/syntax/dtd.vim
@@ -0,0 +1,181 @@
+" Vim syntax file
+" Language:	DTD (Document Type Definition for XML)
+" Maintainer:	Johannes Zellner <johannes@zellner.org>
+"		Author and previous maintainer:
+"		Daniel Amyot <damyot@site.uottawa.ca>
+" Last Change:	Tue, 27 Apr 2004 14:54:59 CEST
+" Filenames:	*.dtd
+"
+" REFERENCES:
+"   http://www.w3.org/TR/html40/
+"   http://www.w3.org/TR/NOTE-html-970421
+"
+" TODO:
+"   - improve synchronizing.
+
+if version < 600
+    syntax clear
+    let __dtd_cpo_save__ = &cpo
+    set cpo&
+else
+    if exists("b:current_syntax")
+	finish
+    endif
+    let s:dtd_cpo_save = &cpo
+    set cpo&vim
+endif
+
+if !exists("dtd_ignore_case")
+    " I prefer having the case takes into consideration.
+    syn case match
+else
+    syn case ignore
+endif
+
+
+" the following line makes the opening <! and
+" closing > highlighted using 'dtdFunction'.
+"
+" PROVIDES: @dtdTagHook
+"
+syn region dtdTag matchgroup=dtdFunction
+    \ start=+<!+ end=+>+ matchgroup=NONE
+    \ contains=dtdTag,dtdTagName,dtdError,dtdComment,dtdString,dtdAttrType,dtdAttrDef,dtdEnum,dtdParamEntityInst,dtdParamEntityDecl,dtdCard,@dtdTagHook
+
+if !exists("dtd_no_tag_errors")
+    " mark everything as an error which starts with a <!
+    " and is not overridden later. If this is annoying,
+    " it can be switched off by setting the variable
+    " dtd_no_tag_errors.
+    syn region dtdError contained start=+<!+lc=2 end=+>+
+endif
+
+" if this is a html like comment hightlight also
+" the opening <! and the closing > as Comment.
+syn region dtdComment		start=+<![ \t]*--+ end=+-->+ contains=dtdTodo
+
+
+" proper DTD comment
+syn region dtdComment contained start=+--+ end=+--+ contains=dtdTodo
+
+
+" Start tags (keywords). This is contained in dtdFunction.
+" Note that everything not contained here will be marked
+" as error.
+syn match dtdTagName contained +<!\(ATTLIST\|DOCTYPE\|ELEMENT\|ENTITY\|NOTATION\|SHORTREF\|USEMAP\|\[\)+lc=2,hs=s+2
+
+
+" wildcards and operators
+syn match  dtdCard contained "|"
+syn match  dtdCard contained ","
+" evenutally overridden by dtdEntity
+syn match  dtdCard contained "&"
+syn match  dtdCard contained "?"
+syn match  dtdCard contained "\*"
+syn match  dtdCard contained "+"
+
+" ...and finally, special cases.
+syn match  dtdCard      "ANY"
+syn match  dtdCard      "EMPTY"
+
+if !exists("dtd_no_param_entities")
+
+    " highlight parameter entity declarations
+    " and instances. Note that the closing `;'
+    " is optional.
+
+    " instances
+    syn region dtdParamEntityInst oneline matchgroup=dtdParamEntityPunct
+	\ start="%[-_a-zA-Z0-9.]\+"he=s+1,rs=s+1
+	\ skip=+[-_a-zA-Z0-9.]+
+	\ end=";\|\>"
+	\ matchgroup=NONE contains=dtdParamEntityPunct
+    syn match  dtdParamEntityPunct contained "\."
+
+    " declarations
+    " syn region dtdParamEntityDecl oneline matchgroup=dtdParamEntityDPunct start=+<!ENTITY % +lc=8 skip=+[-_a-zA-Z0-9.]+ matchgroup=NONE end="\>" contains=dtdParamEntityDPunct
+    syn match dtdParamEntityDecl +<!ENTITY % [-_a-zA-Z0-9.]*+lc=8 contains=dtdParamEntityDPunct
+    syn match  dtdParamEntityDPunct contained "%\|\."
+
+endif
+
+" &entities; compare with xml
+syn match   dtdEntity		      "&[^; \t]*;" contains=dtdEntityPunct
+syn match   dtdEntityPunct  contained "[&.;]"
+
+" Strings are between quotes
+syn region dtdString    start=+"+ skip=+\\\\\|\\"+  end=+"+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard
+syn region dtdString    start=+'+ skip=+\\\\\|\\'+  end=+'+ contains=dtdAttrDef,dtdAttrType,dtdEnum,dtdParamEntityInst,dtdEntity,dtdCard
+
+" Enumeration of elements or data between parenthesis
+"
+" PROVIDES: @dtdEnumHook
+"
+syn region dtdEnum matchgroup=dtdType start="(" end=")" matchgroup=NONE contains=dtdEnum,dtdParamEntityInst,dtdCard,@dtdEnumHook
+
+"Attribute types
+syn keyword dtdAttrType NMTOKEN  ENTITIES  NMTOKENS  ID  CDATA
+syn keyword dtdAttrType IDREF  IDREFS
+" ENTITY has to treated special for not overriding <!ENTITY
+syn match   dtdAttrType +[^!]\<ENTITY+
+
+"Attribute Definitions
+syn match  dtdAttrDef   "#REQUIRED"
+syn match  dtdAttrDef   "#IMPLIED"
+syn match  dtdAttrDef   "#FIXED"
+
+syn case match
+" define some common keywords to mark TODO
+" and important sections inside comments.
+syn keyword dtdTodo contained TODO FIXME XXX
+
+syn sync lines=250
+
+" 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_dtd_syn_inits")
+    if version < 508
+	let did_dtd_syn_inits = 1
+	command -nargs=+ HiLink hi link <args>
+    else
+	command -nargs=+ HiLink hi def link <args>
+    endif
+
+    " The default highlighting.
+    HiLink dtdFunction		Function
+    HiLink dtdTag		Normal
+    HiLink dtdType		Type
+    HiLink dtdAttrType		dtdType
+    HiLink dtdAttrDef		dtdType
+    HiLink dtdConstant		Constant
+    HiLink dtdString		dtdConstant
+    HiLink dtdEnum		dtdConstant
+    HiLink dtdCard		dtdFunction
+
+    HiLink dtdEntity		Statement
+    HiLink dtdEntityPunct	dtdType
+    HiLink dtdParamEntityInst	dtdConstant
+    HiLink dtdParamEntityPunct	dtdType
+    HiLink dtdParamEntityDecl	dtdType
+    HiLink dtdParamEntityDPunct dtdComment
+
+    HiLink dtdComment		Comment
+    HiLink dtdTagName		Statement
+    HiLink dtdError		Error
+    HiLink dtdTodo		Todo
+
+    delcommand HiLink
+endif
+
+if version < 600
+    let &cpo = __dtd_cpo_save__
+    unlet __dtd_cpo_save__
+else
+    let &cpo = s:dtd_cpo_save
+    unlet s:dtd_cpo_save
+endif
+
+let b:current_syntax = "dtd"
+
+" vim: ts=8
