updated for version 7.0001
diff --git a/runtime/syntax/lifelines.vim b/runtime/syntax/lifelines.vim
new file mode 100644
index 0000000..a6a2c8d
--- /dev/null
+++ b/runtime/syntax/lifelines.vim
@@ -0,0 +1,118 @@
+" Vim syntax file
+" Language:	Lifelines (v 3.0.7) http://lifelines.sourceforge.net
+" Maintainer:	Patrick Texier <p.texier@orsennes.com>
+" Location:	ftp://216.71.72.236/lifelines.vim
+" Last Change:	2002 Mar 03
+
+" 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
+
+" A bunch of useful lifelines keywords 3.0.7
+
+syn keyword	lifelinesStatement	set
+syn keyword	lifelinesUser		getindi geindiset getfam getint getstr choosechild
+syn keyword	lifelinesUser		chooseindi choosespouse choosesubset menuchoose
+syn keyword	lifelinesUser		choosefam getintmsg getindimsg getstrmsg
+syn keyword	lifelinesProc		proc func return call
+syn keyword	lifelinesInclude	include
+syn keyword	lifelinesDef		global
+syn keyword	lifelinesConditional	if else elsif switch
+syn keyword	lifelinesRepeat		continue break while
+syn keyword	lifelinesLogical	and or not eq ne lt gt le ge strcmp eqstr nestr
+syn keyword	lifelinesArithm		add sub mul div mod exp neg incr decr
+syn keyword	lifelinesIndi		name fullname surname givens trimname birth
+syn keyword	lifelinesIndi		death baptism burial
+syn keyword	lifelinesIndi		father mother nextsib prevsib sex male female
+syn keyword	lifelinesIndi		pn nspouses nfamilies parents title key
+syn keyword	lifelinesIndi		soundex inode root indi firstindi nextindi
+syn keyword	lifelinesIndi		previndi spouses families forindi indiset
+syn keyword	lifelinesIndi		addtoset deletefromset lengthset union intersect
+syn keyword	lifelinesIndi		difference parentset childset spouseset siblingset
+syn keyword	lifelinesIndi		ancestorset descendentset descendantset uniqueset
+syn keyword	lifelinesIndi		namesort keysort valuesort genindiset getindiset
+syn keyword	lifelinesIndi		forindiset lastindi writeindi
+syn keyword	lifelinesIndi		inset
+syn keyword	lifelinesFam		marriage husband wife nchildren firstchild
+syn keyword     lifelinesFam		lastchild fnode fam firstfam nextfam lastfam
+syn keyword     lifelinesFam		prevfam children forfam writefam
+syn keyword	lifelinesList		list empty length enqueue dequeue requeue
+syn keyword	lifelinesList		push pop setel getel forlist inlist
+syn keyword	lifelinesTable		table insert lookup
+syn keyword	lifelinesGedcom		xref tag value parent child sibling savenode
+syn keyword	lifelinesGedcom		fornodes traverse createnode addnode deletenode
+syn keyword	lifelinesGedcom		reference dereference getrecord
+syn keyword     lifelinesGedcom		gengedcom gengedcomstrong gengedcomweak
+syn keyword	lifelinesFunct		date place year long short gettoday dayformat
+syn keyword	lifelinesFunct		monthformat dateformat extractdate
+syn keyword	lifelinesFunct		complexdate
+syn keyword	lifelinesFunct		extractnames extractplaces extracttokens lower
+syn keyword     lifelinesFunct		upper capitalize trim rjustify save strsave
+syn keyword     lifelinesFunct		concat strconcat strlen substring index
+syn keyword	lifelinesFunct		d card ord alpha roman strsoundex strtoint
+syn keyword	lifelinesFunct		atoi linemode pagemod col row pos pageout nl
+syn keyword	lifelinesFunct		sp qt newfile outfile copyfile print lock unlock
+syn keyword	lifelinesFunct		database version system stddate program
+syn keyword	lifelinesFunct		pvalue pagemode level extractdatestr debug
+syn keyword	lifelinesFunct		f free getcol getproperty heapused
+
+syn region	lifelinesString		start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lifelinesSpecial
+
+syn region	lifelinesComment	start="/\*"  end="\*/" contains=lifelinesComment
+
+" Only integers with lifelines
+
+syn match	lifelinesNumber		"\<\d\+\>"
+
+"catch errors caused by wrong parenthesis
+"adapted from original c.vim written by Bram Moolenaar
+
+syn cluster	lifelinesParenGroup	contains=lifelinesParenError
+syn region	lifelinesParen		transparent start='(' end=')' contains=ALLBUT,@lifelinesParenGroup
+syn match	lifelinesParenError	")"
+syn match	lifelinesErrInParen	contained "[{}]"
+
+" 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_lifelines_syn_inits")
+  if version < 508
+    let did_lifelines_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink lifelinesConditional	Conditional
+  HiLink lifelinesArithm	Operator
+  HiLink lifelinesLogical	Conditional
+  HiLink lifelinesInclude	Include
+  HiLink lifelinesComment	Comment
+  HiLink lifelinesStatement	Statement
+  HiLink lifelinesUser		Statement
+  HiLink lifelinesFunct		Statement
+  HiLink lifelinesTable		Statement
+  HiLink lifelinesGedcom	Statement
+  HiLink lifelinesList		Statement
+  HiLink lifelinesRepeat	Repeat
+  HiLink lifelinesFam		Statement
+  HiLink lifelinesIndi		Statement
+  HiLink lifelinesProc		Statement
+  HiLink lifelinesDef		Statement
+  HiLink lifelinesString	String
+  HiLink lifelinesNumber	Number
+  HiLink lifelinesParenError	Error
+  HiLink lifelinesErrInParen	Error
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "lifelines"
+
+" vim: ts=8