diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c402cd9..3ddc1e1 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Jun 06
+*todo.txt*      For Vim version 7.0aa.  Last change: 2005 Jun 07
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,9 +30,6 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Patch in if_cscope.c also in 6.3?  (Froloff)
-    Sergey says it's OK.
-
 Add extra list of file locations.  Can be used with:
     :ltag	      list of matching tags, like :tselect
 
@@ -95,21 +92,10 @@
 
 -   Add SPELLCHECKER, with support for many languages.
     - Use "engspchk" from Charles Campbell for ideas (commands, rare words).
-    - Should quickly return if there is no word with the character.
-      Use array with flags, indicating if there is a word starting with this
-      byte.  Quickly skip bytes where no word can start.
     - Spell checking code todo's:
-	- Also allow replacing a word list.  Need some mechanism to tell
-	  wether a spell file adds or replaces one found later in
-	  'runtimepath'.
 	- Is "-" to be considered a word character?  "last-minute".
 	  No, in Dutch it can be added optionally.  Then make English
 	  dictionaries consistent.
-	- Implement user and project word lists.  Commands to add words and to
-	  mark words as wrong.
-	- In .aff use RAR to define affix name for rare word.
-	- In .aff use HUH to define affix name for keep-case word.
-	    's morgens/=  does not match 'S morgens
 	- Implement compound words?
 	- When @Spell and @NoSpell are both used only do spell checking for
 	  @Spell items, not where they both appear.  Useful for Perl pod.
@@ -125,11 +111,8 @@
       author: Kevin Hendricks <kevin.hendricks@sympatico.ca>
     - More complicated: Regions with different languages?  E.g. comments in
       English, strings in German (po file).
-    - Commands required:
-	add word to private dict: wrong and OK (in popup menu for evim)
-	    :spell good <word>	    zg
-	    :spell wrong <word>	    zw
-    - Update option window for 'verbosefile', 'spell' and 'spelllang'.
+    - Update option window for 'verbosefile', 'spell', 'spellfile' and
+      'spelllang'.
     - Distribution: Need wordlists for many languages; "language pack"
       Put them on the ftp site, ready to download.  Include README for
       copyrights.
@@ -143,7 +126,8 @@
       cluster" but change the contains list directly for matching syntax
       items.
     - Install spell files with src/main.aap.
-    Alternatives using ispell or aspell:
+    - Alternate Dutch word list at www.nederlandsewoorden.nl (use script to
+      obtain).
 
 -   REFACTORING: The main() function is very long.  Move parts to separate
     functions, especially loops.  Ideas from Walter Briscoe (2003 Apr 3, 2004
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 4e21c0a..31f8ccb 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Jun 06
+*version7.txt*  For Vim version 7.0aa.  Last change: 2005 Jun 07
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -428,6 +428,8 @@
 
 Sive syntax file. (Nikolai Weibull)
 
+Pascal indent file. (Neil Carter)
+
 Moved all the indent settings from the filetype plugin to the indent file.
 Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
 different value.
diff --git a/runtime/indent/pascal.vim b/runtime/indent/pascal.vim
new file mode 100644
index 0000000..b67071c
--- /dev/null
+++ b/runtime/indent/pascal.vim
@@ -0,0 +1,173 @@
+" Vim indent file
+" Language:    Pascal
+" Maintainer:  Neil Carter <n.carter@swansea.ac.uk>
+" Created:     2004 Jul 13
+" Last Change: 2005 Jun 07
+" TODO: Reduce indentation on line after a statement that flowed across
+" two lines (e.g. parameter list closed on second line). Also, increase
+" indent of a becomes-statement that flows onto second line.
+
+" Only load this indent file when no other was loaded.
+if exists("b:did_indent")
+   finish
+endif
+let b:did_indent = 1
+
+setlocal indentexpr=GetPascalIndent(v:lnum)
+" Appending an & to an option sets it to its default value.
+setlocal indentkeys&
+setlocal indentkeys+=~end;,=~const,=~type,=~var,=~begin,=~repeat,=~until,=~for
+setlocal indentkeys+=~program,=~function,=~procedure,=~object,=~private
+setlocal indentkeys+=~record,=~if,=~else,=~case
+
+if exists("*GetPascalIndent")
+	finish
+endif
+
+
+function s:GetPrevLineNum( line_num )
+	
+	" Skip over comments and conditional directives
+	let SKIP_LINES = '^\s*\((\*\)\|\(\*\ \)\|\(\*)\)\|\({\$\)'
+	
+	let nline = a:line_num
+	while nline > 0
+		let nline = prevnonblank(nline-1)
+		if getline(nline) !~? SKIP_LINES
+			break
+		endif
+	endwhile
+	
+"	call input( "nline = ".nline )
+	
+	return nline
+
+endfunction
+
+
+function! GetPascalIndent( line_num )
+	if a:line_num == 0
+		return 0
+	endif
+
+	" If in the middle of a three-part comment
+	if getline( a:line_num ) =~ '^\s*\*\ '
+		return indent( a:line_num )
+	endif
+	
+	" We have to subtract one to start on the line before the current
+	" one. Otherwise, prevnonblank() returns the current line!
+	let prev_line_num = s:GetPrevLineNum( a:line_num )
+	let prev_line = getline( prev_line_num )
+	let indnt = indent( prev_line_num )
+
+	let this_line = getline( a:line_num )
+
+	" At the start of a block, we have to indent the newly-created line
+	" based on the previous line.
+	" =~ means matches a regular expression
+	" a question mark after =~ means ignore case (# means match case)
+	" const, type, var should always appear at the start of a line, but
+	" begin can appear anywhere in the line.
+	" if one of the following keywords appear in the previous line with
+	" nothing before it but optional whitespace, and nothing after it.
+	" Has to be end of line at end to show this is not a routine
+	" parameter list. Otherwise, you'd end up with cascading vars.
+	
+	" These words appear alone on a line (apart from whitespace).
+	if prev_line =~ '^\s*\(const\|var\|begin\|repeat\|private\)$'
+		" Place an & before an option to obtain its value.
+		let indnt = indnt + &shiftwidth
+	endif
+
+	" Words preceded by optional whitespace and followed by anything.
+	if prev_line =~ '^\s*\(for\|if\|else\|case\)'
+		" Place an & before an option to obtain its value.
+		let indnt = indnt + &shiftwidth
+		" if this is a multistatement block then we need to align the
+		" begin with the previous line.
+		if this_line =~ '^\s*begin'
+			let indnt = indnt - &shiftwidth
+		endif
+	endif
+	" These words may have text before them on the line (hence the .*).
+	if prev_line =~ '^.*\s*\<\(object\|record\)\>$'
+		let indnt = indnt + &shiftwidth
+	endif
+	" If we have opened a bracket and the contents spills over one line,
+	" then indent one level beyond the bracket's first line. RE = an
+	" opening bracket followed by any amount of anything other than a
+	" closing bracket and then the end-of-line. If we didn't include the
+	" end of line, this RE would match even closed brackets, since it
+	" would match everything up to the closing bracket.
+	" This test isn't clever enough to handle brackets inside strings or
+	" comments.
+	if prev_line =~ '([^*][^)]*$'
+		let indnt = indnt + &shiftwidth
+	endif
+	
+	" If we just closed a bracket that started on a previous line, then
+	" unindent.
+	if prev_line =~ '^[^(]*[^*])'
+		let indnt = indnt - &shiftwidth
+	endif
+
+	" At the end of a block, we have to unindent both the current line
+	" (the 'end;' for instance) and the newly-created line.
+	if this_line =~ '^\s*\(end;\|until\|else\)'
+		let indnt = indnt - &shiftwidth
+	endif
+
+	" Keywords that always appear at the start of a line.
+	" Problem is that function and procedure keywords should be indented
+	" if within a class declaration.
+	if this_line =~ '^\s*\<type\|uses\|$IFDEF\|$ENDIF\|procedure\|function\>'
+		let indnt = 0
+	endif
+	if prev_line =~ '^\s*\<type\|uses\>'
+		let indnt = &shiftwidth
+	endif
+	
+	" Put conditional compile directives on first column.
+	if this_line =~ '^\s*{\$'
+		let indnt = 0
+	endif
+	
+	return indnt
+endfunction
+
+" TODO: end; should align with the previous (begin/record/object/else).
+" "else begin" is the only case where begin does not appear at the start
+" of the line.
+
+" TODO: Don't align with {$IFDEF}
+
+"Example from vb.vim
+" regular expression match, case insensitive
+"if previous_line =~? 
+" start of line, zero or more whitespace
+"'^\s*
+" start of word
+"\<
+" 
+"\(
+"	begin\|
+"	\%(
+"		\%(
+"			private\|public\|friend
+"		\)
+"		\s\+
+"	\)
+"	zero or more of the previous atom
+"	\=
+"	\%(
+"		function\|sub\|property
+"	\)
+"	\|select\|case\|default\|if
+"\>
+"	.\{-}\<then\>\s*$\|else\|elseif\|do\|for\|while\|enum\|with
+"\)
+" end of word
+"\>'
+"	let ind = ind + &sw
+"endif
