updated for version 7.0186
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 "