updated for version 7.0001
diff --git a/runtime/indent/prolog.vim b/runtime/indent/prolog.vim
new file mode 100644
index 0000000..afe448e
--- /dev/null
+++ b/runtime/indent/prolog.vim
@@ -0,0 +1,58 @@
+"  vim: set sw=4 sts=4:
+"  Maintainer	: Gergely Kontra <kgergely@mcl.hu>
+"  Revised on	: 2002.02.18. 23:34:05
+"  Language	: Prolog
+
+" TODO:
+"   checking with respect to syntax highlighting
+"   ignoring multiline comments
+"   detecting multiline strings
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+    finish
+endif
+
+let b:did_indent = 1
+
+setlocal indentexpr=GetPrologIndent()
+setlocal indentkeys-=:,0#
+setlocal indentkeys+=0%,-,0;,>,0)
+
+" Only define the function once.
+"if exists("*GetPrologIndent")
+"    finish
+"endif
+
+function! GetPrologIndent()
+    " Find a non-blank line above the current line.
+    let pnum = prevnonblank(v:lnum - 1)
+    " Hit the start of the file, use zero indent.
+    if pnum == 0
+       return 0
+    endif
+    let line = getline(v:lnum)
+    let pline = getline(pnum)
+
+    let ind = indent(pnum)
+    " Previous line was comment -> use previous line's indent
+    if pline =~ '^\s*%'
+	retu ind
+    endif
+    " Check for clause head on previous line
+    if pline =~ ':-\s*\(%.*\)\?$'
+	let ind = ind + &sw
+    " Check for end of clause on previous line
+    elseif pline =~ '\.\s*\(%.*\)\?$'
+	let ind = ind - &sw
+    endif
+    " Check for opening conditional on previous line
+    if pline =~ '^\s*\([(;]\|->\)'
+	let ind = ind + &sw
+    endif
+    " Check for closing an unclosed paren, or middle ; or ->
+    if line =~ '^\s*\([);]\|->\)'
+	let ind = ind - &sw
+    endif
+    return ind
+endfunction