diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 2a812fe..4c04f09 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 7.0aa.  Last change: 2006 Jan 20
+*options.txt*	For Vim version 7.0aa.  Last change: 2006 Jan 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -162,6 +162,11 @@
 This sets the 'titlestring' option to "hi" and 'iconstring' to "there": >
    :set titlestring=hi|set iconstring=there
 
+Similarly, the double quote character starts a comment.  To include the '"' in
+the option value, use '\"' instead.  This example sets the 'titlestring'
+option to 'hi "there"': >
+   :set titlestring=hi\ \"there\"
+
 For MS-DOS and WIN32 backslashes in file names are mostly not removed.  More
 precise: For options that expect a file name (those where environment
 variables are expanded) a backslash before a normal file name character is not
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 6393565..aa9c4e4 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1,4 +1,4 @@
-*spell.txt*	For Vim version 7.0aa.  Last change: 2006 Jan 22
+*spell.txt*	For Vim version 7.0aa.  Last change: 2006 Jan 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -129,8 +129,10 @@
 			spelled words.  This also works to find alternatives
 			for a word that is not highlighted as a bad word,
 			e.g., when the word after it is bad.
-			The results are sorted on similarity to the word
-			under/after the cursor.
+			In Visual mode the highlighted text is taken as the
+			word to be replaced.
+			The results are sorted on similarity to the word being
+			replaced.
 			This may take a long time.  Hit CTRL-C when you get
 			bored.
 
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 4b27b68..0b88a6d 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt*	For Vim version 7.0aa.  Last change: 2006 Jan 17
+*syntax.txt*	For Vim version 7.0aa.  Last change: 2006 Jan 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -3900,8 +3900,8 @@
 guibg={color-name}					*highlight-guibg*
 guisp={color-name}					*highlight-guisp*
 	These give the foreground (guifg), background (guibg) and special
-	(guisp) color to use in the GUI.  "guisp" is used for underline and
-	undercurl.  There are a few special names:
+	(guisp) color to use in the GUI.  "guisp" is used for undercurl.
+	There are a few special names:
 		NONE		no color (transparent)
 		bg		use normal background color
 		background	use normal background color
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 01f88e8..aa6e2fe 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 22
+*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Jan 23
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,8 +30,12 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+When ":silent" is used mode message is (should) not be displayed.  Thus don't
+set clear_cmdline to clear it.  Use separate flag to remember whether mode is
+currently displayed (and needs to be cleared).
+
+
 ccomplete:
-- When using page-up/page-down in menu it sometimes jumps more than a page.
 - 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)
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 0926e9b..8a7999f 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1608,8 +1608,7 @@
     return OK;
 }
 
-#if defined(FEAT_QUICKFIX) || (defined(FEAT_SYN_HL) && defined(FEAT_MBYTE)) \
-	|| defined(PROTO)
+#if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
 /*
  * Parse a list of arguments (file names), expand them and return in
  * "fnames[fcountp]".
diff --git a/src/option.c b/src/option.c
index 33a7db5..b7f1cf0 100644
--- a/src/option.c
+++ b/src/option.c
@@ -6743,7 +6743,7 @@
 	{
 	    need_start_insertmode = FALSE;
 	    stop_insert_mode = TRUE;
-	    if (p_smd && restart_edit != 0)
+	    if (p_smd && msg_silent == 0 && restart_edit != 0)
 		clear_cmdline = TRUE;	/* remove "(insert)" */
 	    restart_edit = 0;
 	}
diff --git a/src/popupmenu.c b/src/popupmenu.c
index acc111e..a129d14 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -240,12 +240,14 @@
 	if (pum_first > pum_selected - 4)
 	{
 	    /* scroll down; when we did a jump it's probably a PageUp then
-	     * scroll to put the selected entry at the bottom */
+	     * scroll a whole page */
 	    if (pum_first > pum_selected - 2)
 	    {
-		pum_first = pum_selected - pum_height + 1;
+		pum_first -= pum_height - 2;
 		if (pum_first < 0)
 		    pum_first = 0;
+		else if (pum_first > pum_selected)
+		    pum_first = pum_selected;
 	    }
 	    else
 		pum_first = pum_selected;
@@ -253,9 +255,13 @@
 	else if (pum_first < pum_selected - pum_height + 5)
 	{
 	    /* scroll up; when we did a jump it's probably a PageDown then
-	     * scroll to put the selected entry at the top */
+	     * scroll a whole page */
 	    if (pum_first < pum_selected - pum_height + 1 + 2)
-		pum_first = pum_selected;
+	    {
+		pum_first += pum_height - 2;
+		if (pum_first < pum_selected - pum_height + 1)
+		    pum_first = pum_selected - pum_height + 1;
+	    }
 	    else
 		pum_first = pum_selected - pum_height + 1;
 	}
diff --git a/src/screen.c b/src/screen.c
index c067d92..4657566 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -8174,7 +8174,9 @@
     int		sub_attr;
 #endif
 
-    do_mode = (p_smd && ((State & INSERT) || restart_edit
+    do_mode = ((p_smd && msg_silent == 0)
+	    && ((State & INSERT)
+		|| restart_edit
 #ifdef FEAT_VISUAL
 		|| VIsual_active
 #endif
diff --git a/src/ui.c b/src/ui.c
index ba5911f..0ee61c2 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -2757,7 +2757,7 @@
 	/* if 'selectmode' contains "mouse", start Select mode */
 	may_start_select('o');
 	setmouse();
-	if (p_smd)
+	if (p_smd && msg_silent == 0)
 	    redraw_cmdline = TRUE;	/* show visual mode later */
     }
 #endif
diff --git a/src/version.h b/src/version.h
index e22cb38..3d42437 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Jan 22)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Jan 22, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Jan 23)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Jan 23, compiled "
