Update runtime files.
diff --git a/runtime/syntax/scheme.vim b/runtime/syntax/scheme.vim
index 6f6927f..f987034 100644
--- a/runtime/syntax/scheme.vim
+++ b/runtime/syntax/scheme.vim
@@ -1,6 +1,6 @@
 " Vim syntax file
-" Language:	Scheme (R5RS)
-" Last Change:	2007 Jun 16
+" Language:	Scheme (R5RS + some R6RS extras)
+" Last Change:	2009 Nov 27
 " Maintainer:	Sergey Khorev <sergey.khorev@gmail.com>
 " Original author:	Dirk van Deun <dirk@igwe.vub.ac.be>
 
@@ -26,8 +26,8 @@
 
 " Fascist highlighting: everything that doesn't fit the rules is an error...
 
-syn match	schemeError	oneline    ![^ \t()\[\]";]*!
-syn match	schemeError	oneline    ")"
+syn match	schemeError	![^ \t()\[\]";]*!
+syn match	schemeError	")"
 
 " Quoted and backquoted stuff
 
@@ -71,6 +71,8 @@
 syn keyword schemeSyntax begin do delay set! else =>
 syn keyword schemeSyntax quote quasiquote unquote unquote-splicing
 syn keyword schemeSyntax define-syntax let-syntax letrec-syntax syntax-rules
+" R6RS
+syn keyword schemeSyntax define-record-type fields protocol
 
 syn keyword schemeFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car!
 syn keyword schemeFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr
@@ -109,30 +111,39 @@
 syn keyword schemeFunc dynamic-wind port? values call-with-values
 syn keyword schemeFunc scheme-report-environment null-environment
 syn keyword schemeFunc interaction-environment
+" R6RS
+syn keyword schemeFunc make-eq-hashtable make-eqv-hashtable make-hashtable
+syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set!
+syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update!
+syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys
+syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function
+syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash 
+syn keyword schemeFunc find for-all exists filter partition fold-left fold-right
+syn keyword schemeFunc remp remove remv remq memp assp cons*
 
 " ... so that a single + or -, inside a quoted context, would not be
 " interpreted as a number (outside such contexts, it's a schemeFunc)
 
-syn match	schemeDelimiter	oneline    !\.[ \t\[\]()";]!me=e-1
-syn match	schemeDelimiter	oneline    !\.$!
+syn match	schemeDelimiter	!\.[ \t\[\]()";]!me=e-1
+syn match	schemeDelimiter	!\.$!
 " ... and a single dot is not a number but a delimiter
 
 " This keeps all other stuff unhighlighted, except *stuff* and <stuff>:
 
-syn match	schemeOther	oneline    ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
-syn match	schemeError	oneline    ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+syn match	schemeOther	,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
+syn match	schemeError	,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
 
-syn match	schemeOther	oneline    "\.\.\."
-syn match	schemeError	oneline    !\.\.\.[^ \t\[\]()";]\+!
+syn match	schemeOther	"\.\.\."
+syn match	schemeError	!\.\.\.[^ \t\[\]()";]\+!
 " ... a special identifier
 
-syn match	schemeConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t\[\]()";],me=e-1
-syn match	schemeConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$,
-syn match	schemeError	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+syn match	schemeConstant	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*[ \t\[\]()";],me=e-1
+syn match	schemeConstant	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*$,
+syn match	schemeError	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
 
-syn match	schemeConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
-syn match	schemeConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
-syn match	schemeError	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+syn match	schemeConstant	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
+syn match	schemeConstant	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
+syn match	schemeError	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
 
 " Non-quoted lists, and strings:
 
@@ -153,23 +164,27 @@
 " Writing out the complete description of Scheme numerals without
 " using variables is a day's work for a trained secretary...
 
-syn match	schemeOther	oneline    ![+-][ \t\[\]()";]!me=e-1
-syn match	schemeOther	oneline    ![+-]$!
+syn match	schemeOther	![+-][ \t\[\]()";]!me=e-1
+syn match	schemeOther	![+-]$!
 "
 " This is a useful lax approximation:
-syn match	schemeNumber	oneline    "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*"
-syn match	schemeError	oneline    ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
+syn match	schemeNumber	"[-#+.]\=[0-9][-#+/0-9a-f@i.boxesfdl]*"
+syn match	schemeError	![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
 
-syn match	schemeBoolean	oneline    "#[tf]"
-syn match	schemeError	oneline    !#[tf][^ \t\[\]()";]\+!
+syn match	schemeBoolean	"#[tf]"
+syn match	schemeError	!#[tf][^ \t\[\]()";]\+!
 
-syn match	schemeChar	oneline    "#\\"
-syn match	schemeChar	oneline    "#\\."
-syn match       schemeError	oneline    !#\\.[^ \t\[\]()";]\+!
-syn match	schemeChar	oneline    "#\\space"
-syn match	schemeError	oneline    !#\\space[^ \t\[\]()";]\+!
-syn match	schemeChar	oneline    "#\\newline"
-syn match	schemeError	oneline    !#\\newline[^ \t\[\]()";]\+!
+syn match	schemeCharacter	"#\\"
+syn match	schemeCharacter	"#\\."
+syn match       schemeError	!#\\.[^ \t\[\]()";]\+!
+syn match	schemeCharacter	"#\\space"
+syn match	schemeError	!#\\space[^ \t\[\]()";]\+!
+syn match	schemeCharacter	"#\\newline"
+syn match	schemeError	!#\\newline[^ \t\[\]()";]\+!
+
+" R6RS
+syn match schemeCharacter "#\\x[0-9a-fA-F]\+"
+
 
 if exists("b:is_mzscheme") || exists("is_mzscheme")
     " MzScheme extensions
@@ -177,11 +192,11 @@
     syn region	schemeComment start="#|" end="|#"
 
     " #%xxx are the special MzScheme identifiers
-    syn match schemeOther oneline    "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeOther "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
     " anything limited by |'s is identifier
-    syn match schemeOther oneline    "|[^|]\+|"
+    syn match schemeOther "|[^|]\+|"
 
-    syn match	schemeChar	oneline    "#\\\%(return\|tab\)"
+    syn match	schemeCharacter	"#\\\%(return\|tab\)"
 
     " Modules require stmt
     syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename
@@ -234,8 +249,8 @@
     " multiline comment
     syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment
 
-    syn match schemeOther oneline    "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
-    syn match schemeExtSyntax oneline    "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeOther "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeExtSyntax "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
 
     syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec
     syn keyword schemeExtSyntax foreign-lambda foreign-lambda* define-external define-macro load-library
@@ -266,7 +281,7 @@
     endif
 
     " suggested by Alex Queiroz
-    syn match schemeExtSyntax oneline    "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
     syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+ 
 endif
 
@@ -290,7 +305,7 @@
   HiLink schemeFunc		Function
 
   HiLink schemeString		String
-  HiLink schemeChar		Character
+  HiLink schemeCharacter	Character
   HiLink schemeNumber		Number
   HiLink schemeBoolean		Boolean