updated for version 7.0001
diff --git a/runtime/syntax/spyce.vim b/runtime/syntax/spyce.vim
new file mode 100644
index 0000000..641aa86
--- /dev/null
+++ b/runtime/syntax/spyce.vim
@@ -0,0 +1,110 @@
+" Vim syntax file
+" Language:	   SPYCE
+" Maintainer:	 Rimon Barr <rimon AT acm DOT org>
+" URL:		     http://spyce.sourceforge.net
+" Last Change: 2003 May 11
+
+" 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
+
+" we define it here so that included files can test for it
+if !exists("main_syntax")
+  let main_syntax='spyce'
+endif
+
+" Read the HTML syntax to start with
+let b:did_indent = 1	     " don't perform HTML indentation!
+let html_no_rendering = 1    " do not render <b>,<i>, etc...
+if version < 600
+  so <sfile>:p:h/html.vim
+else
+  runtime! syntax/html.vim
+  unlet b:current_syntax
+endif
+
+" include python
+syn include @Python <sfile>:p:h/python.vim
+syn include @Html <sfile>:p:h/html.vim
+
+" spyce definitions
+syn keyword spyceDirectiveKeyword include compact module import contained
+syn keyword spyceDirectiveArg name names file contained
+syn region  spyceDirectiveString start=+"+ end=+"+ contained
+syn match   spyceDirectiveValue "=[\t ]*[^'", \t>][^, \t>]*"hs=s+1 contained
+
+syn match spyceBeginErrorS  ,\[\[,
+syn match spyceBeginErrorA  ,<%,
+syn cluster spyceBeginError contains=spyceBeginErrorS,spyceBeginErrorA
+syn match spyceEndErrorS    ,\]\],
+syn match spyceEndErrorA    ,%>,
+syn cluster spyceEndError contains=spyceEndErrorS,spyceEndErrorA
+
+syn match spyceEscBeginS       ,\\\[\[,
+syn match spyceEscBeginA       ,\\<%,
+syn cluster spyceEscBegin contains=spyceEscBeginS,spyceEscBeginA
+syn match spyceEscEndS	       ,\\\]\],
+syn match spyceEscEndA	       ,\\%>,
+syn cluster spyceEscEnd contains=spyceEscEndS,spyceEscEndA
+syn match spyceEscEndCommentS  ,--\\\]\],
+syn match spyceEscEndCommentA  ,--\\%>,
+syn cluster spyceEscEndComment contains=spyceEscEndCommentS,spyceEscEndCommentA
+
+syn region spyceStmtS      matchgroup=spyceStmtDelim start=,\[\[, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
+syn region spyceStmtA      matchgroup=spyceStmtDelim start=,<%, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
+syn region spyceChunkS     matchgroup=spyceChunkDelim start=,\[\[\\, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
+syn region spyceChunkA     matchgroup=spyceChunkDelim start=,<%\\, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
+syn region spyceEvalS      matchgroup=spyceEvalDelim start=,\[\[=, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
+syn region spyceEvalA      matchgroup=spyceEvalDelim start=,<%=, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend
+syn region spyceDirectiveS matchgroup=spyceDelim start=,\[\[\., end=,\]\], contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend
+syn region spyceDirectiveA matchgroup=spyceDelim start=,<%@, end=,%>, contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend
+syn region spyceCommentS   matchgroup=spyceCommentDelim start=,\[\[--, end=,--\]\],
+syn region spyceCommentA   matchgroup=spyceCommentDelim start=,<%--, end=,--%>,
+syn region spyceLambdaS    matchgroup=spyceLambdaDelim start=,\[\[spy!\?, end=,\]\], contains=@Html,@spyce extend
+syn region spyceLambdaA    matchgroup=spyceLambdaDelim start=,<%spy!\?, end=,%>, contains=@Html,@spyce extend
+
+syn cluster spyce contains=spyceStmtS,spyceStmtA,spyceChunkS,spyceChunkA,spyceEvalS,spyceEvalA,spyceCommentS,spyceCommentA,spyceDirectiveS,spyceDirectiveA
+
+syn cluster htmlPreproc contains=@spyce
+
+hi link spyceDirectiveKeyword	Special
+hi link spyceDirectiveArg	Type
+hi link spyceDirectiveString	String
+hi link spyceDirectiveValue	String
+
+hi link spyceDelim		Special
+hi link spyceStmtDelim		spyceDelim
+hi link spyceChunkDelim		spyceDelim
+hi link spyceEvalDelim		spyceDelim
+hi link spyceLambdaDelim	spyceDelim
+hi link spyceCommentDelim	Comment
+
+hi link spyceBeginErrorS	Error
+hi link spyceBeginErrorA	Error
+hi link spyceEndErrorS		Error
+hi link spyceEndErrorA		Error
+
+hi link spyceStmtS		spyce
+hi link spyceStmtA		spyce
+hi link spyceChunkS		spyce
+hi link spyceChunkA		spyce
+hi link spyceEvalS		spyce
+hi link spyceEvalA		spyce
+hi link spyceDirectiveS		spyce
+hi link spyceDirectiveA		spyce
+hi link spyceCommentS		Comment
+hi link spyceCommentA		Comment
+hi link spyceLambdaS		Normal
+hi link spyceLambdaA		Normal
+
+hi link spyce			Statement
+
+let b:current_syntax = "spyce"
+if main_syntax == 'spyce'
+  unlet main_syntax
+endif
+