diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 563e4bb..c953db3 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1562,6 +1562,7 @@
 getftype( {fname})		String	description of type of file {fname}
 getline( {lnum})		String	line {lnum} of current buffer
 getline( {lnum}, {end})		List	lines {lnum} to {end} of current buffer
+getloclist({nr})		List	list of location list items
 getqflist()			List	list of quickfix items
 getreg( [{regname} [, 1]])	String	contents of register
 getregtype( [{regname}])	String	type of register
@@ -1652,7 +1653,9 @@
 setbufvar( {expr}, {varname}, {val})	set {varname} in buffer {expr} to {val}
 setcmdpos( {pos})		Number	set cursor position in command-line
 setline( {lnum}, {line})	Number	set line {lnum} to {line}
-setqflist( {list}[, {action}])	Number	set list of quickfix items using {list}
+setloclist( {nr}, {list}[, {action}])
+				Number	modify location list using {list}
+setqflist( {list}[, {action}])	Number	modify quickfix list using {list}
 setreg( {n}, {v}[, {opt}])	Number	set register to value and type
 setwinvar( {nr}, {varname}, {val})	set {varname} in window {nr} to {val}
 simplify( {filename})		String	simplify filename as much as possible
@@ -2693,6 +2696,11 @@
 			:let end = search("^$") - 1
 			:let lines = getline(start, end)
 
+getloclist({nr})					*getloclist()*
+		Returns a list with all the entries in the location list for
+		window {nr}. When {nr} is zero the current window is used.
+		For a location list window, the displayed location list is
+		returned.  Otherwise, same as getqflist().
 
 getqflist()						*getqflist()*
 		Returns a list with all the current quickfix errors.  Each
@@ -3971,12 +3979,17 @@
 			:endfor
 <		Note: The '[ and '] marks are not set.
 
+setloclist({nr}, {list} [, {action}])			*setloclist()*
+		Create or replace or add to the location list for window {nr}.
+		When {nr} is zero the current window is used. For a location
+		list window, the displayed location list is modified.
+		Otherwise, same as setqflist().
 
 setqflist({list} [, {action}])				*setqflist()*
-		Creates a quickfix list using the items in {list}.  Each item
-		in {list} is a dictionary.  Non-dictionary items in {list} are
-		ignored.  Each dictionary item can contain the following
-		entries:
+		Create or replace or add to the quickfix list using the items
+		in {list}.  Each item in {list} is a dictionary.
+		Non-dictionary items in {list} are ignored.  Each dictionary
+		item can contain the following entries:
 
 		    filename	name of a file
 		    lnum	line number in the file
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 6cd0878..b4b3f81 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 7.0aa.  Last change: 2006 Jan 13
+*quickfix.txt*  For Vim version 7.0aa.  Last change: 2006 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -73,8 +73,8 @@
 			all, go to the [count] next error.  See |:cc| for
 			[!] and 'switchbuf'.
 
-							*:ln* *:lnext*
-:[count]ln[ext][!]	Same as ":cnext", except the location list for the
+							*:lne* *:lnext*
+:[count]lne[xt][!]	Same as ":cnext", except the location list for the
 			current window is used instead of the quickfix list.
 
 :[count]cN[ext][!]			*:cp* *:cprevious* *:cN* *:cNext*
@@ -83,8 +83,8 @@
 			all, go to the [count] previous error.  See |:cc| for
 			[!] and 'switchbuf'.
 
-					*:lp* *:lprevious* *:lN* *:lNext*
-:[count]lN[ext][!]
+				
+:[count]lN[ext][!]			*:lp* *:lprevious* *:lN* *:lNext*
 :[count]lp[revious][!]	Same as ":cNext" and ":cprevious", except the location
 			list for the current window is used instead of the
 			quickfix list.
@@ -107,8 +107,8 @@
 			the [count] previous error.  See |:cc| for [!] and
 			'switchbuf'.
 
-					*:lpf* *:lpfile* *:lNf* *:lNfile*
-:[count]lNf[ile][!]
+
+:[count]lNf[ile][!]			*:lpf* *:lpfile* *:lNf* *:lNfile*
 :[count]lpf[ile][!]	Same as ":cNfile" and ":cpfile", except the location
 			list for the current window is used instead of the
 			quickfix list.
@@ -153,13 +153,13 @@
 			You can not use the -q command-line option to set
 			the location list.
 
-							*:cg* *:cgetfile*
-:cg[etfile][!] [errorfile]
+		
+:cg[etfile][!] [errorfile]				*:cg* *:cgetfile*
 			Read the error file.  Just like ":cfile" but don't
 			jump to the first error.
 
-							*:lg* *:lgetfile*
-:lg[etfile][!] [errorfile]
+			
+:lg[etfile][!] [errorfile]				*:lg* *:lgetfile*
 			Same as ":cgetfile", except the location list for the
 			current window is used instead of the quickfix list.
 
@@ -260,12 +260,12 @@
 			the current window.  It is not possible to open a
 			second quickfix window.
 
-							*:lope* *:lopen*
-:lope[n] [height]	Open a window to show the location list for the
+							*:lop* *:lopen*
+:lop[en] [height]	Open a window to show the location list for the
 			current window. Works only when the location list for
-			the current window is present. You can have more than
-			one location window opened at a time.  Otherewise,
-			same as ":copen".
+			the current window is present.  You can have more than
+			one location window opened at a time.  Otherwise, it
+			acts the same same as ":copen".
 
 							*:ccl* *:cclose*
 :ccl[ose]		Close the quickfix window.
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 036f4fb..4ad56bb 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2099,15 +2099,27 @@
 :keepjumps	motion.txt	/*:keepjumps*
 :keepmarks	motion.txt	/*:keepmarks*
 :l	various.txt	/*:l*
+:lN	quickfix.txt	/*:lN*
+:lNext	quickfix.txt	/*:lNext*
+:lNf	quickfix.txt	/*:lNf*
+:lNfile	quickfix.txt	/*:lNfile*
 :la	editing.txt	/*:la*
+:lad	quickfix.txt	/*:lad*
+:laddexpr	quickfix.txt	/*:laddexpr*
+:laddf	quickfix.txt	/*:laddf*
+:laddfile	quickfix.txt	/*:laddfile*
 :lan	mlang.txt	/*:lan*
 :lang	mlang.txt	/*:lang*
 :language	mlang.txt	/*:language*
 :last	editing.txt	/*:last*
+:lb	quickfix.txt	/*:lb*
+:lbuffer	quickfix.txt	/*:lbuffer*
 :lc	editing.txt	/*:lc*
 :lcd	editing.txt	/*:lcd*
 :lch	editing.txt	/*:lch*
 :lchdir	editing.txt	/*:lchdir*
+:lcl	quickfix.txt	/*:lcl*
+:lclose	quickfix.txt	/*:lclose*
 :le	change.txt	/*:le*
 :left	change.txt	/*:left*
 :lefta	windows.txt	/*:lefta*
@@ -2123,13 +2135,32 @@
 :let-star	eval.txt	/*:let-star*
 :let-unpack	eval.txt	/*:let-unpack*
 :let.=	eval.txt	/*:let.=*
+:lex	quickfix.txt	/*:lex*
+:lexpr	quickfix.txt	/*:lexpr*
+:lf	quickfix.txt	/*:lf*
+:lfile	quickfix.txt	/*:lfile*
+:lfir	quickfix.txt	/*:lfir*
+:lfirst	quickfix.txt	/*:lfirst*
+:lg	quickfix.txt	/*:lg*
+:lgetfile	quickfix.txt	/*:lgetfile*
 :list	various.txt	/*:list*
+:ll	quickfix.txt	/*:ll*
+:lla	quickfix.txt	/*:lla*
+:llast	quickfix.txt	/*:llast*
+:lli	quickfix.txt	/*:lli*
+:llist	quickfix.txt	/*:llist*
 :lm	map.txt	/*:lm*
 :lmap	map.txt	/*:lmap*
 :lmap_l	map.txt	/*:lmap_l*
 :lmapc	map.txt	/*:lmapc*
 :lmapclear	map.txt	/*:lmapclear*
 :ln	map.txt	/*:ln*
+:lne	quickfix.txt	/*:lne*
+:lnew	quickfix.txt	/*:lnew*
+:lnewer	quickfix.txt	/*:lnewer*
+:lnext	quickfix.txt	/*:lnext*
+:lnf	quickfix.txt	/*:lnf*
+:lnfile	quickfix.txt	/*:lnfile*
 :lnoremap	map.txt	/*:lnoremap*
 :lo	starting.txt	/*:lo*
 :loadk	mbyte.txt	/*:loadk*
@@ -2139,9 +2170,21 @@
 :lockmarks	motion.txt	/*:lockmarks*
 :lockv	eval.txt	/*:lockv*
 :lockvar	eval.txt	/*:lockvar*
+:lol	quickfix.txt	/*:lol*
+:lolder	quickfix.txt	/*:lolder*
+:lop	quickfix.txt	/*:lop*
+:lopen	quickfix.txt	/*:lopen*
+:lp	quickfix.txt	/*:lp*
+:lpf	quickfix.txt	/*:lpf*
+:lpfile	quickfix.txt	/*:lpfile*
+:lprevious	quickfix.txt	/*:lprevious*
+:lr	quickfix.txt	/*:lr*
+:lrewind	quickfix.txt	/*:lrewind*
 :ls	windows.txt	/*:ls*
 :lu	map.txt	/*:lu*
 :lunmap	map.txt	/*:lunmap*
+:lw	quickfix.txt	/*:lw*
+:lwindow	quickfix.txt	/*:lwindow*
 :m	change.txt	/*:m*
 :ma	motion.txt	/*:ma*
 :mak	quickfix.txt	/*:mak*
@@ -3798,6 +3841,7 @@
 E773	recover.txt	/*E773*
 E774	map.txt	/*E774*
 E775	map.txt	/*E775*
+E776	quickfix.txt	/*E776*
 E777	quickfix.txt	/*E777*
 E778	spell.txt	/*E778*
 E779	spell.txt	/*E779*
@@ -5229,6 +5273,7 @@
 getftime()	eval.txt	/*getftime()*
 getftype()	eval.txt	/*getftype()*
 getline()	eval.txt	/*getline()*
+getloclist()	eval.txt	/*getloclist()*
 getqflist()	eval.txt	/*getqflist()*
 getreg()	eval.txt	/*getreg()*
 getregtype()	eval.txt	/*getregtype()*
@@ -5729,6 +5774,8 @@
 locale	mbyte.txt	/*locale*
 locale-name	mbyte.txt	/*locale-name*
 localtime()	eval.txt	/*localtime()*
+location-list	quickfix.txt	/*location-list*
+location-list-window	quickfix.txt	/*location-list-window*
 long-lines	version5.txt	/*long-lines*
 lowercase	change.txt	/*lowercase*
 lpc.vim	syntax.txt	/*lpc.vim*
@@ -6042,6 +6089,7 @@
 new-items-6	version6.txt	/*new-items-6*
 new-items-7	version7.txt	/*new-items-7*
 new-line-continuation	version5.txt	/*new-line-continuation*
+new-location-list	version7.txt	/*new-location-list*
 new-manpage-trans	version7.txt	/*new-manpage-trans*
 new-multi-byte	version5.txt	/*new-multi-byte*
 new-multi-lang	version6.txt	/*new-multi-lang*
@@ -6458,6 +6506,7 @@
 setbufvar()	eval.txt	/*setbufvar()*
 setcmdpos()	eval.txt	/*setcmdpos()*
 setline()	eval.txt	/*setline()*
+setloclist()	eval.txt	/*setloclist()*
 setqflist()	eval.txt	/*setqflist()*
 setreg()	eval.txt	/*setreg()*
 setting-guifont	gui.txt	/*setting-guifont*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 2566b8c..8d49c5f 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Jan 25
+*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Jan 26
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,9 +30,7 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Include location list commands, patch from Yegappan Lakshmanan.
-
-ccomplete:
+ccomplete / omnicomplete:
 - When an option is set: In completion mode and the user types (identifier)
   characters, advance to the first match instead of removing the popup menu.
   If there is no match remove the selection. (Yegappan Lakshmanan)
@@ -58,6 +56,7 @@
     Can't reproduce it right now...
 
 spelling:
+- Also use the spelling dictionary for dictionary completion.
 - Use runtime/cleanadd script to cleanup .add files.  When to invoke it?
   After deleting a word with "zw" and some timestamp difference perhaps?
   Store it as spell/cleanadd.vim.
@@ -94,7 +93,6 @@
     obtain).  But new Myspell wordlist will come (Hagen)
 - Finding suggestions with sound folding is slow.  Somehow store the
   sound-folded words and link to the words it comes from?
-- Also use the spelling dictionary for dictionary completion.
 - Have "zg" and "zw" report the file that was modified. (Marvin Renich)
 - Add a command like "zg" that selects one of the files 'spellfile'.
 - Add a "zug" command that undoes "zg"?  Deletes the good word instead of
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index 0df9501..2b73315 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -747,6 +747,7 @@
 	exists()		check if a variable, function, etc. exists
 	has()			check if a feature is supported in Vim
 	getqflist()		list of quickfix errors
+	getloclist()		list of location list items
 	cscope_connection()	check if a cscope connection exists
 	did_filetype()		check if a FileType autocommand was used
 	eventhandler()		check if invoked by an event handler
@@ -758,7 +759,8 @@
 	libcallnr()		idem, returning a number
 	getreg()		get contents of a register
 	getregtype()		get type of a register
-	setqflist()		create a quickfix list
+	setqflist()		modify a quickfix list
+	setloclist()		modify a location list
 	setreg()		set contents and type of a register
 	taglist()		get list of matching tags
 
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index ed929f3..763ecb8 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Jan 25
+*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Jan 26
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -30,6 +30,7 @@
 Debugger support			|new-debug-support|
 Remote file explorer			|new-netrw-explore|
 Define an operator			|new-define-operator|
+Location list				|new-location-list|
 Various new items			|new-items-7|
 
 IMPROVEMENTS				|improvements-7|
@@ -356,6 +357,13 @@
 
 See |:map-operator| for the explanation and an example.
 
+Location list						*new-location-list*
+-------------
+
+The support for a per-window quickfix list (location list) is added. The
+location list can be displayed in a location window (similar to the quickfix
+window). You can open more than one location list window. A set of commands
+similar to the quickfix commands are added to browse the location list.
 
 Various new items					*new-items-7*
 -----------------
@@ -474,6 +482,7 @@
 |count()|		count nr of times a value is in a List or Dictionary
 |deepcopy()|		make a full copy of a List or Dictionary
 |empty()|		check if List or Dictionary is empty
+|getloclist()|		list of location list items (Yegappan Lakshmanan)
 |getqflist()|		list of quickfix errors (Yegappan Lakshmanan)
 |extend()|		append one List to another or add items from one
 			Dictionary to another
@@ -509,7 +518,8 @@
 |repeat()| 		repeat "expr" "count" times (Christophe Poucet)
 |reverse()|		reverse the order of a List
 |searchdecl()|		search for declaration of variable
-|setqflist()|		create a quickfix list (Yegappan Lakshmanan)
+|setloclist()|		modify a location list (Yegappan Lakshmanan)
+|setqflist()|		modify a quickfix list (Yegappan Lakshmanan)
 |sort()|		sort a List
 |soundfold()|		get the sound-a-like equivalent of a word
 |split()|		split a String into a List
@@ -587,6 +597,8 @@
 Implemented b:undo_indent to undo indent settings when setting 'filetype' to a
 different value.
 
+VHDL indent file (Gerald Lai)
+
 
 New Keymaps: ~
 
