diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 44608a0..a99f184 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0aa.  Last change: 2005 Mar 04
+*autocmd.txt*   For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -542,6 +542,18 @@
 QuickFixCmdPost						*QuickFixCmdPost*
 				like QuickFixCmdPre, but after a quickfix
 				command is run.
+							*MenuPopup*
+MenuPopup			Just before showing the popup menu (under the
+				right mouse button).  Useful for adjusting the
+				menu for what is under the cursor or mouse
+				pointer.
+				The pattern is matched against a single
+				character representing the mode:
+					n	Normal
+					v	Visual
+					o	Operator-pending
+					i	Insert
+					c	Commmand line
 							*UserGettingBored*
 UserGettingBored		When the user hits CTRL-C.  Just kidding! :-)
 							*User*
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 93a2b4f..307ceae 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 18
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1511,6 +1511,8 @@
 function( {name})		Funcref reference to function {name}
 get( {list}, {idx} [, {def}])	any	get item {idx} from {list} or {def}
 get( {dict}, {key} [, {def}])	any	get item {key} from {dict} or {def}
+getbufline( {expr}, {lnum} [, {end}])
+				List	lines {lnum} to {end} of buffer {expr}
 getchar( [expr])		Number	get one character from the user
 getcharmod( )			Number	modifiers for the last typed character
 getbufvar( {expr}, {varname})		variable {varname} in buffer {expr}
@@ -2409,6 +2411,35 @@
 		item is not available return {default}.  Return zero when
 		{default} is omitted.
 
+							*getbufline()*
+getbufline({expr}, {lnum} [, {end}])
+		Return the lines starting from {lnum} to {end} in the buffer
+		{expr} as a List. If {end} is omitted, only the line {lnum}
+		is returned.
+
+		For the use of {expr}, see |bufname()| above.
+
+		When {lnum} is a String that doesn't start with a
+		digit, line() is called to translate the String into a Number.
+
+		{end} is used in the same way as {lnum}.
+
+		When {lnum} is smaller than 1 or bigger than the number of
+		lines in the buffer, an empty List is returned.
+
+		When {end} is greater than the number of lines in the buffer,
+		it is treated as {end} is set to the number of lines in the
+		buffer.
+
+		When non-existing line ranges are specified, an empty List is
+		returned.  When {end} is before {lnum} an empty List is
+		returned.
+
+		This function works only for loaded buffers. For unloaded and
+		non-existing buffers, an empty List is returned.
+
+		Example: >
+			:let lines = getbufline(bufnr("myfile"), 1, "$")
 
 getbufvar({expr}, {varname})				*getbufvar()*
 		The result is the value of option or local buffer variable
@@ -2572,7 +2603,7 @@
 		including line {end}.
 		{end} is used in the same way as {lnum}.
 		Non-existing lines are silently omitted.
-		When {end} is before {lnum} an error is given.
+		When {end} is before {lnum} an empty List is returned.
 		Example: >
 			:let start = line('.')
 			:let end = search("^$") - 1
@@ -4290,6 +4321,7 @@
 arp			Compiled with ARP support (Amiga).
 autocmd			Compiled with autocommands support.
 balloon_eval		Compiled with |balloon-eval| support.
+balloon_multiline	GUI supports multiline balloons.
 beos			BeOS version of Vim.
 browse			Compiled with |:browse| support, and browse() will
 			work.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index d491351..89c5cd5 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 18
+*options.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -1013,7 +1013,7 @@
 	The evaluation of the expression must not have side effects!
 	Example: >
     function! MyBalloonExpr()
-	return 'Cursor is at line ' . v:beval_lnum . 
+	return 'Cursor is at line ' . v:beval_lnum .
 		\', column ' . v:beval_col .
 		\ ' of file ' .  bufname(v:beval_bufnr) .
 		\ ' on word "' . v:beval_text . '"'
@@ -1026,6 +1026,9 @@
 	Vim does not try to send a message to an external debugger (Netbeans
 	or Sun Workshop).
 
+	To check wether line breaks in the balloon text work use this check: >
+		if has("balloon_multiline")
+<
 				     *'binary'* *'bin'* *'nobinary'* *'nobin'*
 'binary' 'bin'		boolean	(default off)
 			local to buffer
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 79782c8..f85a49a 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 05
+*spell.txt*	For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -33,6 +33,11 @@
 
 Vim only checks words for spelling, there is no grammar check.
 
+If the 'mousemodel' option is set to "popup" and the cursor is on a badly
+spelled word or it is "popup_setpos" and the mouse pointer is on a badly
+spelled word, then the popup menu will contain an submenu to replace the bad
+word.  Note: this slows down the appearance of the popup menu.
+
 To search for the next misspelled word:
 
 							*]s* *E756*
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 86ac4fe..6c61c24 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -3827,6 +3827,7 @@
 Mac-format-write	editing.txt	/*Mac-format-write*
 Macintosh	os_mac.txt	/*Macintosh*
 Mark	motion.txt	/*Mark*
+MenuPopup	autocmd.txt	/*MenuPopup*
 MiNT	os_mint.txt	/*MiNT*
 Moolenaar	intro.txt	/*Moolenaar*
 MorphOS	os_amiga.txt	/*MorphOS*
@@ -5014,6 +5015,7 @@
 gd	pattern.txt	/*gd*
 ge	motion.txt	/*ge*
 get()	eval.txt	/*get()*
+getbufline()	eval.txt	/*getbufline()*
 getbufvar()	eval.txt	/*getbufvar()*
 getchar()	eval.txt	/*getchar()*
 getcharmod()	eval.txt	/*getcharmod()*
