diff --git a/runtime/syntax/sqlinformix.vim b/runtime/syntax/sqlinformix.vim
new file mode 100644
index 0000000..b4d0236
--- /dev/null
+++ b/runtime/syntax/sqlinformix.vim
@@ -0,0 +1,196 @@
+" Vim syntax file
+" Informix Structured Query Language (SQL) and Stored Procedure Language (SPL)
+" Language:	SQL, SPL (Informix Dynamic Server 2000 v9.2)
+" Maintainer:	Dean Hill <dhill@hotmail.com>
+" Last Change:	2004 Aug 30
+
+" 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
+
+syn case ignore
+
+
+
+" === Comment syntax group ===
+syn region sqlComment    start="{"  end="}" contains=sqlTodo
+syn match sqlComment	"--.*$" contains=sqlTodo
+syn sync ccomment sqlComment
+
+
+
+" === Constant syntax group ===
+" = Boolean subgroup =
+syn keyword sqlBoolean  true false
+syn keyword sqlBoolean  null
+syn keyword sqlBoolean  public user
+syn keyword sqlBoolean  current today
+syn keyword sqlBoolean  year month day hour minute second fraction
+
+" = String subgroup =
+syn region sqlString		start=+"+  end=+"+
+syn region sqlString		start=+'+  end=+'+
+
+" = Numbers subgroup =
+syn match sqlNumber		"-\=\<\d*\.\=[0-9_]\>"
+
+
+
+" === Statement syntax group ===
+" SQL
+syn keyword sqlStatement allocate alter
+syn keyword sqlStatement begin
+syn keyword sqlStatement close commit connect create
+syn keyword sqlStatement database deallocate declare delete describe disconnect drop
+syn keyword sqlStatement execute fetch flush free get grant info insert
+syn keyword sqlStatement load lock open output
+syn keyword sqlStatement prepare put
+syn keyword sqlStatement rename revoke rollback select set start stop
+syn keyword sqlStatement truncate unload unlock update
+syn keyword sqlStatement whenever
+" SPL
+syn keyword sqlStatement call continue define
+syn keyword sqlStatement exit
+syn keyword sqlStatement let
+syn keyword sqlStatement return system trace
+
+" = Conditional subgroup =
+" SPL
+syn keyword sqlConditional elif else if then
+syn keyword sqlConditional case
+" Highlight "end if" with one or more separating spaces
+syn match  sqlConditional "end \+if"
+
+" = Repeat subgroup =
+" SQL/SPL
+" Handle SQL triggers' "for each row" clause and SPL "for" loop
+syn match  sqlRepeat "for\( \+each \+row\)\="
+" SPL
+syn keyword sqlRepeat foreach while
+" Highlight "end for", etc. with one or more separating spaces
+syn match  sqlRepeat "end \+for"
+syn match  sqlRepeat "end \+foreach"
+syn match  sqlRepeat "end \+while"
+
+" = Exception subgroup =
+" SPL
+syn match  sqlException "on \+exception"
+syn match  sqlException "end \+exception"
+syn match  sqlException "end \+exception \+with \+resume"
+syn match  sqlException "raise \+exception"
+
+" = Keyword subgroup =
+" SQL
+syn keyword sqlKeyword aggregate add as authorization autofree by
+syn keyword sqlKeyword cache cascade check cluster collation
+syn keyword sqlKeyword column connection constraint cross
+syn keyword sqlKeyword dataskip debug default deferred_prepare
+syn keyword sqlKeyword descriptor diagnostics
+syn keyword sqlKeyword each escape explain external
+syn keyword sqlKeyword file foreign fragment from function
+syn keyword sqlKeyword group having
+syn keyword sqlKeyword immediate index inner into isolation
+syn keyword sqlKeyword join key
+syn keyword sqlKeyword left level log
+syn keyword sqlKeyword mode modify mounting new no
+syn keyword sqlKeyword object of old optical option
+syn keyword sqlKeyword optimization order outer
+syn keyword sqlKeyword pdqpriority pload primary procedure
+syn keyword sqlKeyword references referencing release reserve
+syn keyword sqlKeyword residency right role routine row
+syn keyword sqlKeyword schedule schema scratch session set
+syn keyword sqlKeyword statement statistics synonym
+syn keyword sqlKeyword table temp temporary timeout to transaction trigger
+syn keyword sqlKeyword using values view violations
+syn keyword sqlKeyword where with work
+" Highlight "on" (if it's not followed by some words we've already handled)
+syn match sqlKeyword "on \+\(exception\)\@!"
+" SPL
+" Highlight "end" (if it's not followed by some words we've already handled)
+syn match sqlKeyword "end \+\(if\|for\|foreach\|while\|exception\)\@!"
+syn keyword sqlKeyword resume returning
+
+" = Operator subgroup =
+" SQL
+syn keyword sqlOperator	not and or
+syn keyword sqlOperator	in is any some all between exists
+syn keyword sqlOperator	like matches
+syn keyword sqlOperator union intersect
+syn keyword sqlOperator distinct unique
+
+
+
+" === Identifier syntax group ===
+" = Function subgroup =
+" SQL
+syn keyword sqlFunction	abs acos asin atan atan2 avg
+syn keyword sqlFunction	cardinality cast char_length character_length cos count
+syn keyword sqlFunction	exp filetoblob filetoclob hex
+syn keyword sqlFunction	initcap length logn log10 lower lpad
+syn keyword sqlFunction	min max mod octet_length pow range replace root round rpad
+syn keyword sqlFunction	sin sqrt stdev substr substring sum
+syn keyword sqlFunction	to_char tan to_date trim trunc upper variance
+
+
+
+" === Type syntax group ===
+" SQL
+syn keyword sqlType	blob boolean byte char character clob
+syn keyword sqlType	date datetime dec decimal double
+syn keyword sqlType	float int int8 integer interval list lvarchar
+syn keyword sqlType	money multiset nchar numeric nvarchar
+syn keyword sqlType	real serial serial8 smallfloat smallint
+syn keyword sqlType	text varchar varying
+
+
+
+" === Todo syntax group ===
+syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE
+
+
+
+" 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_sql_syn_inits")
+  if version < 508
+    let did_sql_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+
+  " === Comment syntax group ===
+  HiLink sqlComment	Comment
+
+  " === Constant syntax group ===
+  HiLink sqlNumber	Number
+  HiLink sqlBoolean	Boolean
+  HiLink sqlString	String
+
+  " === Statment syntax group ===
+  HiLink sqlStatement	Statement
+  HiLink sqlConditional	Conditional
+  HiLink sqlRepeat		Repeat
+  HiLink sqlKeyword		Keyword
+  HiLink sqlOperator	Operator
+  HiLink sqlException	Exception
+
+  " === Identifier syntax group ===
+  HiLink sqlFunction	Function
+
+  " === Type syntax group ===
+  HiLink sqlType	Type
+
+  " === Todo syntax group ===
+  HiLink sqlTodo	Todo
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "sqlinformix"
