diff --git a/runtime/indent/tf.vim b/runtime/indent/tf.vim
new file mode 100644
index 0000000..61cebc3
--- /dev/null
+++ b/runtime/indent/tf.vim
@@ -0,0 +1,72 @@
+" Vim indent file
+" Language:     tf (TinyFugue)
+" Maintainer:   Christian J. Robinson <infynity@onewest.net>
+" URL:          http://www.infynity.spodzone.com/vim/indent/tf.vim
+" Last Change:  2002 May 29
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+  finish
+endif
+let b:did_indent = 1
+
+setlocal indentexpr=GetTFIndent()
+setlocal indentkeys-=0{,0} indentkeys-=0# indentkeys-=:
+setlocal indentkeys+==/endif,=/then,=/else,=/done,0;
+
+" Only define the function once:
+if exists("*GetTFIndent")
+  finish
+endif
+
+function GetTFIndent()
+	" Find a non-blank line above the current line:
+	let lnum = prevnonblank(v:lnum - 1)
+
+	" No indent for the start of the file:
+	if lnum == 0
+		return 0
+	endif
+
+	let ind = indent(lnum)
+	let line = getline(lnum)
+
+	" No indentation if the previous line didn't end with "\":
+	" (Could be annoying, but it lets you know if you made a mistake.)
+	if line !~ '\\$'
+		return 0
+	endif
+
+	if line =~ '\(/def.*\\\|/for.*\(%;\s*\)\@\<!\\\)$'
+		let ind = ind + &sw
+	elseif line =~ '\(/if\|/else\|/then\)'
+		if line !~ '/endif'
+			let ind = ind + &sw
+		endif
+	elseif line =~ '/while'
+		if line !~ '/done'
+			let ind = ind + &sw
+		endif
+	endif
+
+	let line = getline(v:lnum)
+
+	if line =~ '\(/else\|/endif\|/then\)'
+		if line !~ '/if'
+			let ind = ind - &sw
+		endif
+	elseif line =~ '/done'
+		if line !~ '/while'
+			let ind = ind - &sw
+		endif
+	endif
+
+	" Comments at the beginning of a line:
+	if line =~ '^\s*;'
+		let ind = 0
+	endif
+
+
+	return ind
+
+endfunction
