diff --git a/runtime/syntax/rebol.vim b/runtime/syntax/rebol.vim
new file mode 100644
index 0000000..e639575
--- /dev/null
+++ b/runtime/syntax/rebol.vim
@@ -0,0 +1,216 @@
+" Vim syntax file
+" Language:	Rebol
+" Maintainer:	Mike Williams <mrw@eandem.co.uk>
+" Filenames:	*.r
+" Last Change:	27th June 2002
+" URL:		http://www.eandem.co.uk/mrw/vim
+"
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" Rebol is case insensitive
+syn case ignore
+
+" As per current users documentation
+if version < 600
+  set isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
+else
+  setlocal isk=@,48-57,?,!,.,',+,-,*,&,\|,=,_,~
+endif
+
+" Yer TODO highlighter
+syn keyword	rebolTodo	contained TODO
+
+" Comments
+syn match       rebolComment    ";.*$" contains=rebolTodo
+
+" Words
+syn match       rebolWord       "\a\k*"
+syn match       rebolWordPath   "[^[:space:]]/[^[:space]]"ms=s+1,me=e-1
+
+" Booleans
+syn keyword     rebolBoolean    true false on off yes no
+
+" Values
+" Integers
+syn match       rebolInteger    "\<[+-]\=\d\+\('\d*\)*\>"
+" Decimals
+syn match       rebolDecimal    "[+-]\=\(\d\+\('\d*\)*\)\=[,.]\d*\(e[+-]\=\d\+\)\="
+syn match       rebolDecimal    "[+-]\=\d\+\('\d*\)*\(e[+-]\=\d\+\)\="
+" Time
+syn match       rebolTime       "[+-]\=\(\d\+\('\d*\)*\:\)\{1,2}\d\+\('\d*\)*\([.,]\d\+\)\=\([AP]M\)\=\>"
+syn match       rebolTime       "[+-]\=:\d\+\([.,]\d*\)\=\([AP]M\)\=\>"
+" Dates
+" DD-MMM-YY & YYYY format
+syn match       rebolDate       "\d\{1,2}\([/-]\)\(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\1\(\d\{2}\)\{1,2}\>"
+" DD-month-YY & YYYY format
+syn match       rebolDate       "\d\{1,2}\([/-]\)\(January\|February\|March\|April\|May\|June\|July\|August\|September\|October\|November\|December\)\1\(\d\{2}\)\{1,2}\>"
+" DD-MM-YY & YY format
+syn match       rebolDate       "\d\{1,2}\([/-]\)\d\{1,2}\1\(\d\{2}\)\{1,2}\>"
+" YYYY-MM-YY format
+syn match       rebolDate       "\d\{4}-\d\{1,2}-\d\{1,2}\>"
+" DD.MM.YYYY format
+syn match       rebolDate       "\d\{1,2}\.\d\{1,2}\.\d\{4}\>"
+" Money
+syn match       rebolMoney      "\a*\$\d\+\('\d*\)*\([,.]\d\+\)\="
+" Strings
+syn region      rebolString     oneline start=+"+ skip=+^"+ end=+"+ contains=rebolSpecialCharacter
+syn region      rebolString     start=+[^#]{+ end=+}+ skip=+{[^}]*}+ contains=rebolSpecialCharacter
+" Binary
+syn region      rebolBinary     start=+\d*#{+ end=+}+ contains=rebolComment
+" Email
+syn match       rebolEmail      "\<\k\+@\(\k\+\.\)*\k\+\>"
+" File
+syn match       rebolFile       "%\(\k\+/\)*\k\+[/]\=" contains=rebolSpecialCharacter
+syn region      rebolFile       oneline start=+%"+ end=+"+ contains=rebolSpecialCharacter
+" URLs
+syn match	rebolURL	"http://\k\+\(\.\k\+\)*\(:\d\+\)\=\(/\(\k\+/\)*\(\k\+\)\=\)*"
+syn match	rebolURL	"file://\k\+\(\.\k\+\)*/\(\k\+/\)*\k\+"
+syn match	rebolURL	"ftp://\(\k\+:\k\+@\)\=\k\+\(\.\k\+\)*\(:\d\+\)\=/\(\k\+/\)*\k\+"
+syn match	rebolURL	"mailto:\k\+\(\.\k\+\)*@\k\+\(\.\k\+\)*"
+" Issues
+syn match	rebolIssue	"#\(\d\+-\)*\d\+"
+" Tuples
+syn match	rebolTuple	"\(\d\+\.\)\{2,}"
+
+" Characters
+syn match       rebolSpecialCharacter contained "\^[^[:space:][]"
+syn match       rebolSpecialCharacter contained "%\d\+"
+
+
+" Operators
+" Math operators
+syn match       rebolMathOperator  "\(\*\{1,2}\|+\|-\|/\{1,2}\)"
+syn keyword     rebolMathFunction  abs absolute add arccosine arcsine arctangent cosine
+syn keyword     rebolMathFunction  divide exp log-10 log-2 log-e max maximum min
+syn keyword     rebolMathFunction  minimum multiply negate power random remainder sine
+syn keyword     rebolMathFunction  square-root subtract tangent
+" Binary operators
+syn keyword     rebolBinaryOperator complement and or xor ~
+" Logic operators
+syn match       rebolLogicOperator "[<>=]=\="
+syn match       rebolLogicOperator "<>"
+syn keyword     rebolLogicOperator not
+syn keyword     rebolLogicFunction all any
+syn keyword     rebolLogicFunction head? tail?
+syn keyword     rebolLogicFunction negative? positive? zero? even? odd?
+syn keyword     rebolLogicFunction binary? block? char? date? decimal? email? empty?
+syn keyword     rebolLogicFunction file? found? function? integer? issue? logic? money?
+syn keyword     rebolLogicFunction native? none? object? paren? path? port? series?
+syn keyword     rebolLogicFunction string? time? tuple? url? word?
+syn keyword     rebolLogicFunction exists? input? same? value?
+
+" Datatypes
+syn keyword     rebolType       binary! block! char! date! decimal! email! file!
+syn keyword     rebolType       function! integer! issue! logic! money! native!
+syn keyword     rebolType       none! object! paren! path! port! string! time!
+syn keyword     rebolType       tuple! url! word!
+syn keyword     rebolTypeFunction type?
+
+" Control statements
+syn keyword     rebolStatement  break catch exit halt reduce return shield
+syn keyword     rebolConditional if else
+syn keyword     rebolRepeat     for forall foreach forskip loop repeat while until do
+
+" Series statements
+syn keyword     rebolStatement  change clear copy fifth find first format fourth free
+syn keyword     rebolStatement  func function head insert last match next parse past
+syn keyword     rebolStatement  pick remove second select skip sort tail third trim length?
+
+" Context
+syn keyword     rebolStatement  alias bind use
+
+" Object
+syn keyword     rebolStatement  import make make-object rebol info?
+
+" I/O statements
+syn keyword     rebolStatement  delete echo form format import input load mold prin
+syn keyword     rebolStatement  print probe read save secure send write
+syn keyword     rebolOperator   size? modified?
+
+" Debug statement
+syn keyword     rebolStatement  help probe trace
+
+" Misc statements
+syn keyword     rebolStatement  func function free
+
+" Constants
+syn keyword     rebolConstant   none
+
+
+" 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_rebol_syntax_inits")
+  if version < 508
+    let did_rebol_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink rebolTodo     Todo
+
+  HiLink rebolStatement Statement
+  HiLink rebolLabel	Label
+  HiLink rebolConditional Conditional
+  HiLink rebolRepeat	Repeat
+
+  HiLink rebolOperator	Operator
+  HiLink rebolLogicOperator rebolOperator
+  HiLink rebolLogicFunction rebolLogicOperator
+  HiLink rebolMathOperator rebolOperator
+  HiLink rebolMathFunction rebolMathOperator
+  HiLink rebolBinaryOperator rebolOperator
+  HiLink rebolBinaryFunction rebolBinaryOperator
+
+  HiLink rebolType     Type
+  HiLink rebolTypeFunction rebolOperator
+
+  HiLink rebolWord     Identifier
+  HiLink rebolWordPath rebolWord
+  HiLink rebolFunction	Function
+
+  HiLink rebolCharacter Character
+  HiLink rebolSpecialCharacter SpecialChar
+  HiLink rebolString	String
+
+  HiLink rebolNumber   Number
+  HiLink rebolInteger  rebolNumber
+  HiLink rebolDecimal  rebolNumber
+  HiLink rebolTime     rebolNumber
+  HiLink rebolDate     rebolNumber
+  HiLink rebolMoney    rebolNumber
+  HiLink rebolBinary   rebolNumber
+  HiLink rebolEmail    rebolString
+  HiLink rebolFile     rebolString
+  HiLink rebolURL      rebolString
+  HiLink rebolIssue    rebolNumber
+  HiLink rebolTuple    rebolNumber
+  HiLink rebolFloat    Float
+  HiLink rebolBoolean  Boolean
+
+  HiLink rebolConstant Constant
+
+  HiLink rebolComment	Comment
+
+  HiLink rebolError	Error
+
+  delcommand HiLink
+endif
+
+if exists("my_rebol_file")
+  if file_readable(expand(my_rebol_file))
+    execute "source " . my_rebol_file
+  endif
+endif
+
+let b:current_syntax = "rebol"
+
+" vim: ts=8
