diff --git a/runtime/syntax/inform.vim b/runtime/syntax/inform.vim
new file mode 100644
index 0000000..1190163
--- /dev/null
+++ b/runtime/syntax/inform.vim
@@ -0,0 +1,408 @@
+" Vim syntax file
+" Language:     Inform
+" Maintainer:   Stephen Thomas (informvim@stephenthomas.uklinux.net)
+" URL:		http://www.stephenthomas.uklinux.net/informvim
+" Last Change:  2004 May 16
+
+" Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" A bunch of useful Inform keywords.  First, case insensitive stuff
+
+syn case ignore
+
+syn keyword informDefine Constant
+
+syn keyword informType Array Attribute Class Nearby
+syn keyword informType Object Property String Routine
+syn match   informType "\<Global\>"
+
+syn keyword informInclude Import Include Link Replace System_file
+
+syn keyword informPreCondit End Endif Ifdef Ifndef Iftrue Iffalse Ifv3 Ifv5
+syn keyword informPreCondit Ifnot
+
+syn keyword informPreProc Abbreviate Default Fake_action Lowstring
+syn keyword informPreProc Message Release Serial Statusline Stub Switches
+syn keyword informPreProc Trace Zcharacter
+
+syn region  informGlobalRegion matchgroup=informType start="\<Global\>" matchgroup=NONE skip=+!.*$\|".*"\|'.*'+ end=";" contains=ALLBUT,informGramPreProc,informPredicate,informGrammar,informAsm,informAsmObsolete
+
+syn keyword informGramPreProc contained Verb Extend
+
+if !exists("inform_highlight_simple")
+  syn keyword informLibAttrib absent animate clothing concealed container
+  syn keyword informLibAttrib door edible enterable female general light
+  syn keyword informLibAttrib lockable locked male moved neuter on open
+  syn keyword informLibAttrib openable pluralname proper scenery scored
+  syn keyword informLibAttrib static supporter switchable talkable
+  syn keyword informLibAttrib visited workflag worn
+  syn match informLibAttrib "\<transparent\>"
+
+  syn keyword informLibProp e_to se_to s_to sw_to w_to nw_to n_to ne_to
+  syn keyword informLibProp u_to d_to in_to out_to before after life
+  syn keyword informLibProp door_to with_key door_dir invent plural
+  syn keyword informLibProp add_to_scope list_together react_before
+  syn keyword informLibProp react_after grammar orders initial when_open
+  syn keyword informLibProp when_closed when_on when_off description
+  syn keyword informLibProp describe article cant_go found_in time_left
+  syn keyword informLibProp number time_out daemon each_turn capacity
+  syn keyword informLibProp name short_name short_name_indef parse_name
+  syn keyword informLibProp articles inside_description
+  if !exists("inform_highlight_old")
+    syn keyword informLibProp compass_look before_implicit
+    syn keyword informLibProp ext_initialise ext_messages
+  endif
+
+  syn keyword informLibObj e_obj se_obj s_obj sw_obj w_obj nw_obj n_obj
+  syn keyword informLibObj ne_obj u_obj d_obj in_obj out_obj compass
+  syn keyword informLibObj thedark selfobj player location second actor
+  syn keyword informLibObj noun
+  if !exists("inform_highlight_old")
+    syn keyword informLibObj LibraryExtensions
+  endif
+
+  syn keyword informLibRoutine Achieved AfterRoutines AddToScope
+  syn keyword informLibRoutine AllowPushDir Banner ChangeDefault
+  syn keyword informLibRoutine ChangePlayer CommonAncestor DictionaryLookup
+  syn keyword informLibRoutine DisplayStatus DoMenu DrawStatusLine
+  syn keyword informLibRoutine EnglishNumber HasLightSource GetGNAOfObject
+  syn keyword informLibRoutine IndirectlyContains IsSeeThrough Locale
+  syn keyword informLibRoutine LoopOverScope LTI_Insert MoveFloatingObjects
+  syn keyword informLibRoutine NextWord NextWordStopped NounDomain
+  syn keyword informLibRoutine ObjectIsUntouchable OffersLight ParseToken
+  syn keyword informLibRoutine PlaceInScope PlayerTo PrintShortName
+  syn keyword informLibRoutine PronounNotice ScopeWithin SetPronoun SetTime
+  syn keyword informLibRoutine StartDaemon StartTimer StopDaemon StopTimer
+  syn keyword informLibRoutine TestScope TryNumber UnsignedCompare
+  syn keyword informLibRoutine WordAddress WordInProperty WordLength
+  syn keyword informLibRoutine WriteListFrom YesOrNo ZRegion RunRoutines
+  syn keyword informLibRoutine AfterLife AfterPrompt Amusing BeforeParsing
+  syn keyword informLibRoutine ChooseObjects DarkToDark DeathMessage
+  syn keyword informLibRoutine GamePostRoutine GamePreRoutine Initialise
+  syn keyword informLibRoutine InScope LookRoutine NewRoom ParseNoun
+  syn keyword informLibRoutine ParseNumber ParserError PrintRank PrintVerb
+  syn keyword informLibRoutine PrintTaskName TimePasses UnknownVerb
+  if exists("inform_highlight_glulx")
+     syn keyword informLibRoutine  IdentifyGlkObject HandleGlkEvent
+     syn keyword informLibRoutine  InitGlkWindow
+  endif
+  if !exists("inform_highlight_old")
+     syn keyword informLibRoutine  KeyCharPrimitive KeyDelay ClearScreen
+     syn keyword informLibRoutine  MoveCursor MainWindow StatusLineHeight
+     syn keyword informLibRoutine  ScreenWidth ScreenHeight SetColour
+     syn keyword informLibRoutine  DecimalNumber PrintToBuffer Length
+     syn keyword informLibRoutine  UpperCase LowerCase PrintCapitalised
+     syn keyword informLibRoutine  Cap Centre
+     if exists("inform_highlight_glulx")
+	syn keyword informLibRoutine  PrintAnything PrintAnyToArray
+     endif
+  endif
+
+  syn keyword informLibAction  Quit Restart Restore Verify Save
+  syn keyword informLibAction  ScriptOn ScriptOff Pronouns Score
+  syn keyword informLibAction  Fullscore LMode1 LMode2 LMode3
+  syn keyword informLibAction  NotifyOn NotifyOff Version Places
+  syn keyword informLibAction  Objects TraceOn TraceOff TraceLevel
+  syn keyword informLibAction  ActionsOn ActionsOff RoutinesOn
+  syn keyword informLibAction  RoutinesOff TimersOn TimersOff
+  syn keyword informLibAction  CommandsOn CommandsOff CommandsRead
+  syn keyword informLibAction  Predictable XPurloin XAbstract XTree
+  syn keyword informLibAction  Scope Goto Gonear Inv InvTall InvWide
+  syn keyword informLibAction  Take Drop Remove PutOn Insert Transfer
+  syn keyword informLibAction  Empty Enter Exit GetOff Go Goin Look
+  syn keyword informLibAction  Examine Search Give Show Unlock Lock
+  syn keyword informLibAction  SwitchOn SwitchOff Open Close Disrobe
+  syn keyword informLibAction  Wear Eat Yes No Burn Pray Wake
+  syn keyword informLibAction  WakeOther Consult Kiss Think Smell
+  syn keyword informLibAction  Listen Taste Touch Dig Cut Jump
+  syn keyword informLibAction  JumpOver Tie Drink Fill Sorry Strong
+  syn keyword informLibAction  Mild Attack Swim Swing Blow Rub Set
+  syn keyword informLibAction  SetTo WaveHands Wave Pull Push PushDir
+  syn keyword informLibAction  Turn Squeeze LookUnder ThrowAt Tell
+  syn keyword informLibAction  Answer Buy Ask AskFor Sing Climb Wait
+  syn keyword informLibAction  Sleep LetGo Receive ThrownAt Order
+  syn keyword informLibAction  TheSame PluralFound Miscellany Prompt
+  syn keyword informLibAction  ChangesOn ChangesOff Showverb Showobj
+  syn keyword informLibAction  EmptyT VagueGo
+  if exists("inform_highlight_glulx")
+     syn keyword informLibAction  GlkList
+  endif
+
+  syn keyword informLibVariable keep_silent deadflag action special_number
+  syn keyword informLibVariable consult_from consult_words etype verb_num
+  syn keyword informLibVariable verb_word the_time real_location c_style
+  syn keyword informLibVariable parser_one parser_two listing_together wn
+  syn keyword informLibVariable parser_action scope_stage scope_reason
+  syn keyword informLibVariable action_to_be menu_item item_name item_width
+  syn keyword informLibVariable lm_o lm_n inventory_style task_scores
+  syn keyword informLibVariable inventory_stage
+
+  syn keyword informLibConst AMUSING_PROVIDED DEBUG Headline MAX_CARRIED
+  syn keyword informLibConst MAX_SCORE MAX_TIMERS NO_PLACES NUMBER_TASKS
+  syn keyword informLibConst OBJECT_SCORE ROOM_SCORE SACK_OBJECT Story
+  syn keyword informLibConst TASKS_PROVIDED WITHOUT_DIRECTIONS
+  syn keyword informLibConst NEWLINE_BIT INDENT_BIT FULLINV_BIT ENGLISH_BIT
+  syn keyword informLibConst RECURSE_BIT ALWAYS_BIT TERSE_BIT PARTINV_BIT
+  syn keyword informLibConst DEFART_BIT WORKFLAG_BIT ISARE_BIT CONCEAL_BIT
+  syn keyword informLibConst PARSING_REASON TALKING_REASON EACHTURN_REASON
+  syn keyword informLibConst REACT_BEFORE_REASON REACT_AFTER_REASON
+  syn keyword informLibConst TESTSCOPE_REASON LOOPOVERSCOPE_REASON
+  syn keyword informLibConst STUCK_PE UPTO_PE NUMBER_PE CANTSEE_PE TOOLIT_PE
+  syn keyword informLibConst NOTHELD_PE MULTI_PE MMULTI_PE VAGUE_PE EXCEPT_PE
+  syn keyword informLibConst ANIMA_PE VERB_PE SCENERY_PE ITGONE_PE
+  syn keyword informLibConst JUNKAFTER_PE TOOFEW_PE NOTHING_PE ASKSCOPE_PE
+  if !exists("inform_highlight_old")
+     syn keyword informLibConst WORDSIZE TARGET_ZCODE TARGET_GLULX
+     syn keyword informLibConst LIBRARY_PARSER LIBRARY_VERBLIB LIBRARY_GRAMMAR
+     syn keyword informLibConst LIBRARY_ENGLISH NO_SCORE START_MOVE
+     syn keyword informLibConst CLR_DEFAULT CLR_BLACK CLR_RED CLR_GREEN
+     syn keyword informLibConst CLR_YELLOW CLR_BLUE CLR_MAGENTA CLR_CYAN
+     syn keyword informLibConst CLR_WHITE CLR_PURPLE CLR_AZURE
+     syn keyword informLibConst WIN_ALL WIN_MAIN WIN_STATUS
+  endif
+endif
+
+" Now the case sensitive stuff.
+
+syntax case match
+
+syn keyword informSysFunc child children elder indirect parent random
+syn keyword informSysFunc sibling younger youngest metaclass
+if exists("inform_highlight_glulx")
+  syn keyword informSysFunc glk
+endif
+
+syn keyword informSysConst adjectives_table actions_table classes_table
+syn keyword informSysConst identifiers_table preactions_table version_number
+syn keyword informSysConst largest_object strings_offset code_offset
+syn keyword informSysConst dict_par1 dict_par2 dict_par3
+syn keyword informSysConst actual_largest_object static_memory_offset
+syn keyword informSysConst array_names_offset readable_memory_offset
+syn keyword informSysConst cpv__start cpv__end ipv__start ipv__end
+syn keyword informSysConst array__start array__end lowest_attribute_number
+syn keyword informSysConst highest_attribute_number attribute_names_array
+syn keyword informSysConst lowest_property_number highest_property_number
+syn keyword informSysConst property_names_array lowest_action_number
+syn keyword informSysConst highest_action_number action_names_array
+syn keyword informSysConst lowest_fake_action_number highest_fake_action_number
+syn keyword informSysConst fake_action_names_array lowest_routine_number
+syn keyword informSysConst highest_routine_number routines_array
+syn keyword informSysConst routine_names_array routine_flags_array
+syn keyword informSysConst lowest_global_number highest_global_number globals_array
+syn keyword informSysConst global_names_array global_flags_array
+syn keyword informSysConst lowest_array_number highest_array_number arrays_array
+syn keyword informSysConst array_names_array array_flags_array lowest_constant_number
+syn keyword informSysConst highest_constant_number constants_array constant_names_array
+syn keyword informSysConst lowest_class_number highest_class_number class_objects_array
+syn keyword informSysConst lowest_object_number highest_object_number
+if !exists("inform_highlight_old")
+  syn keyword informSysConst sys_statusline_flag
+endif
+
+syn keyword informConditional default else if switch
+
+syn keyword informRepeat break continue do for objectloop until while
+
+syn keyword informStatement box font give inversion jump move new_line
+syn keyword informStatement print print_ret quit read remove restore return
+syn keyword informStatement rfalse rtrue save spaces string style
+
+syn keyword informOperator roman reverse bold underline fixed on off to
+syn keyword informOperator near from
+
+syn keyword informKeyword dictionary symbols objects verbs assembly
+syn keyword informKeyword expressions lines tokens linker on off alias long
+syn keyword informKeyword additive score time string table
+syn keyword informKeyword with private has class error fatalerror
+syn keyword informKeyword warning self
+if !exists("inform_highlight_old")
+  syn keyword informKeyword buffer
+endif
+
+syn keyword informMetaAttrib remaining create destroy recreate copy call
+syn keyword informMetaAttrib print_to_array
+
+syn keyword informPredicate has hasnt in notin ofclass or
+syn keyword informPredicate provides
+
+syn keyword informGrammar contained noun held multi multiheld multiexcept
+syn keyword informGrammar contained multiinside creature special number
+syn keyword informGrammar contained scope topic reverse meta only replace
+syn keyword informGrammar contained first last
+
+syn keyword informKeywordObsolete contained initial data initstr
+
+syn keyword informTodo contained TODO
+
+" Assembly language mnemonics must be preceded by a '@'.
+
+syn match informAsmContainer "@\s*\k*" contains=informAsm,informAsmObsolete
+
+if exists("inform_highlight_glulx")
+  syn keyword informAsm contained nop add sub mul div mod neg bitand bitor
+  syn keyword informAsm contained bitxor bitnot shiftl sshiftr ushiftr jump jz
+  syn keyword informAsm contained jnz jeq jne jlt jge jgt jle jltu jgeu jgtu
+  syn keyword informAsm contained jleu call return catch throw tailcall copy
+  syn keyword informAsm contained copys copyb sexs sexb aload aloads aloadb
+  syn keyword informAsm contained aloadbit astore astores astoreb astorebit
+  syn keyword informAsm contained stkcount stkpeek stkswap stkroll stkcopy
+  syn keyword informAsm contained streamchar streamnum streamstr gestalt
+  syn keyword informAsm contained debugtrap getmemsize setmemsize jumpabs
+  syn keyword informAsm contained random setrandom quit verify restart save
+  syn keyword informAsm contained restore saveundo restoreundo protect glk
+  syn keyword informAsm contained getstringtbl setstringtbl getiosys setiosys
+  syn keyword informAsm contained linearsearch binarysearch linkedsearch
+  syn keyword informAsm contained callf callfi callfii callfiii
+else
+  syn keyword informAsm contained je jl jg dec_chk inc_chk jin test or and
+  syn keyword informAsm contained test_attr set_attr clear_attr store
+  syn keyword informAsm contained insert_obj loadw loadb get_prop
+  syn keyword informAsm contained get_prop_addr get_next_prop add sub mul div
+  syn keyword informAsm contained mod call storew storeb put_prop sread
+  syn keyword informAsm contained print_num random push pull
+  syn keyword informAsm contained split_window set_window output_stream
+  syn keyword informAsm contained input_stream sound_effect jz get_sibling
+  syn keyword informAsm contained get_child get_parent get_prop_len inc dec
+  syn keyword informAsm contained remove_obj print_obj ret jump
+  syn keyword informAsm contained load not rtrue rfalse print
+  syn keyword informAsm contained print_ret nop save restore restart
+  syn keyword informAsm contained ret_popped pop quit new_line show_status
+  syn keyword informAsm contained verify call_2s call_vs aread call_vs2
+  syn keyword informAsm contained erase_window erase_line set_cursor get_cursor
+  syn keyword informAsm contained set_text_style buffer_mode read_char
+  syn keyword informAsm contained scan_table call_1s call_2n set_colour throw
+  syn keyword informAsm contained call_vn call_vn2 tokenise encode_text
+  syn keyword informAsm contained copy_table print_table check_arg_count
+  syn keyword informAsm contained call_1n catch piracy log_shift art_shift
+  syn keyword informAsm contained set_font save_undo restore_undo draw_picture
+  syn keyword informAsm contained picture_data erase_picture set_margins
+  syn keyword informAsm contained move_window window_size window_style
+  syn keyword informAsm contained get_wind_prop scroll_window pop_stack
+  syn keyword informAsm contained read_mouse mouse_window push_stack
+  syn keyword informAsm contained put_wind_prop print_form make_menu
+  syn keyword informAsm contained picture_table
+  if !exists("inform_highlight_old")
+     syn keyword informAsm contained check_unicode print_unicode
+  endif
+  syn keyword informAsmObsolete contained print_paddr print_addr print_char
+endif
+
+" Handling for different versions of VIM.
+
+if version >= 600
+  setlocal iskeyword+=$
+  command -nargs=+ SynDisplay syntax <args> display
+else
+  set iskeyword+=$
+  command -nargs=+ SynDisplay syntax <args>
+endif
+
+" Grammar sections.
+
+syn region informGrammarSection matchgroup=informGramPreProc start="\<Verb\|Extend\>" skip=+".*"+ end=";"he=e-1 contains=ALLBUT,informAsm
+
+" Special character forms.
+
+SynDisplay match informBadAccent contained "@[^{[:digit:]]\D"
+SynDisplay match informBadAccent contained "@{[^}]*}"
+SynDisplay match informAccent contained "@:[aouAOUeiyEI]"
+SynDisplay match informAccent contained "@'[aeiouyAEIOUY]"
+SynDisplay match informAccent contained "@`[aeiouAEIOU]"
+SynDisplay match informAccent contained "@\^[aeiouAEIOU]"
+SynDisplay match informAccent contained "@\~[anoANO]"
+SynDisplay match informAccent contained "@/[oO]"
+SynDisplay match informAccent contained "@ss\|@<<\|@>>\|@oa\|@oA\|@ae\|@AE\|@cc\|@cC"
+SynDisplay match informAccent contained "@th\|@et\|@Th\|@Et\|@LL\|@oe\|@OE\|@!!\|@??"
+SynDisplay match informAccent contained "@{\x\{1,4}}"
+SynDisplay match informBadStrUnicode contained "@@\D"
+SynDisplay match informStringUnicode contained "@@\d\+"
+SynDisplay match informStringCode contained "@\d\d"
+
+" String and Character constants.  Ordering is important here.
+syn region informString start=+"+ skip=+\\\\+ end=+"+ contains=informAccent,informStringUnicode,informStringCode,informBadAccent,informBadStrUnicode
+syn region informDictString start="'" end="'" contains=informAccent,informBadAccent
+SynDisplay match informBadDictString "''"
+SynDisplay match informDictString "'''"
+
+" Integer numbers: decimal, hexadecimal and binary.
+SynDisplay match informNumber "\<\d\+\>"
+SynDisplay match informNumber "\<\$\x\+\>"
+SynDisplay match informNumber "\<\$\$[01]\+\>"
+
+" Comments
+syn match informComment "!.*" contains=informTodo
+
+" Syncronization
+syn sync match informSyncStringEnd grouphere NONE /"[;,]\s*$/
+syn sync match informSyncRoutineEnd grouphere NONE /][;,]\s*$/
+syn sync match informSyncCommentEnd grouphere NONE /^\s*!.*$/
+syn sync match informSyncRoutine groupthere informGrammarSection "\<Verb\|Extend\>"
+syn sync maxlines=500
+
+delcommand SynDisplay
+
+" The default highlighting.
+if version >= 508 || !exists("did_inform_syn_inits")
+  if version < 508
+    let did_inform_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink informDefine		Define
+  HiLink informType		Type
+  HiLink informInclude		Include
+  HiLink informPreCondit	PreCondit
+  HiLink informPreProc		PreProc
+  HiLink informGramPreProc	PreProc
+  HiLink informAsm		Special
+  if !exists("inform_suppress_obsolete")
+    HiLink informAsmObsolete		informError
+    HiLink informKeywordObsolete	informError
+  else
+    HiLink informAsmObsolete		Special
+    HiLink informKeywordObsolete	Keyword
+  endif
+  HiLink informPredicate	Operator
+  HiLink informSysFunc		Identifier
+  HiLink informSysConst		Identifier
+  HiLink informConditional	Conditional
+  HiLink informRepeat		Repeat
+  HiLink informStatement	Statement
+  HiLink informOperator		Operator
+  HiLink informKeyword		Keyword
+  HiLink informGrammar		Keyword
+  HiLink informDictString	String
+  HiLink informNumber		Number
+  HiLink informError		Error
+  HiLink informString		String
+  HiLink informComment		Comment
+  HiLink informAccent		Special
+  HiLink informStringUnicode	Special
+  HiLink informStringCode	Special
+  HiLink informTodo		Todo
+  if !exists("inform_highlight_simple")
+    HiLink informLibAttrib	Identifier
+    HiLink informLibProp	Identifier
+    HiLink informLibObj		Identifier
+    HiLink informLibRoutine	Identifier
+    HiLink informLibVariable	Identifier
+    HiLink informLibConst	Identifier
+    HiLink informLibAction	Identifier
+  endif
+  HiLink informBadDictString	informError
+  HiLink informBadAccent	informError
+  HiLink informBadStrUnicode	informError
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "inform"
+
+" vim: ts=8
