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 "
