diff --git a/src/getchar.c b/src/getchar.c
index c1c9bca..5da7537 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2365,7 +2365,7 @@
 		    colnr_T	col = 0, vcol;
 		    char_u	*ptr;
 
-		    if (p_smd)
+		    if (p_smd && msg_silent == 0)
 		    {
 			unshowmode(TRUE);
 			mode_deleted = TRUE;
@@ -2641,7 +2641,7 @@
      *	 if we return an ESC to exit insert mode, the message is deleted
      *	 if we don't return an ESC but deleted the message before, redisplay it
      */
-    if (advance && p_smd && (State & INSERT))
+    if (advance && p_smd && msg_silent == 0 && (State & INSERT))
     {
 	if (c == ESC && !mode_deleted && !no_mapping)
 	{
diff --git a/src/normal.c b/src/normal.c
index 310a6f0..4d105e7 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1165,6 +1165,7 @@
      * Don't redraw the screen, it would remove the message.
      */
     if (       ((p_smd
+		    && msg_silent == 0
 		    && (restart_edit != 0
 #ifdef FEAT_VISUAL
 			|| (VIsual_active
@@ -1713,7 +1714,7 @@
 		setmouse();
 		mouse_dragging = 0;
 # endif
-		if (p_smd)
+		if (p_smd && msg_silent == 0)
 		    clear_cmdline = TRUE;   /* unshow visual mode later */
 #ifdef FEAT_CMDL_INFO
 		else
@@ -2947,7 +2948,8 @@
     }
 
     /* If Visual mode changed show it later. */
-    if (p_smd && (VIsual_active != old_active || VIsual_mode != old_mode))
+    if (p_smd && msg_silent == 0
+		  && (VIsual_active != old_active || VIsual_mode != old_mode))
 	redraw_cmdline = TRUE;
 #endif
 
@@ -3113,7 +3115,7 @@
 	curwin->w_cursor.coladd = 0;
 #endif
 
-    if (p_smd)
+    if (p_smd && msg_silent == 0)
 	clear_cmdline = TRUE;		/* unshow visual mode later */
 #ifdef FEAT_CMDL_INFO
     else
@@ -3644,7 +3646,7 @@
     };
 #endif
 
-    if (!p_sc)
+    if (!p_sc || msg_silent != 0)
 	return FALSE;
 
     if (showcmd_visual)
@@ -7138,7 +7140,7 @@
 #ifdef FEAT_MOUSE
 	    setmouse();
 #endif
-	    if (p_smd)
+	    if (p_smd && msg_silent == 0)
 		redraw_cmdline = TRUE;	    /* show visual mode later */
 	    /*
 	     * For V and ^V, we multiply the number of lines even if there
@@ -7235,7 +7237,7 @@
 #ifdef FEAT_MOUSE
     setmouse();
 #endif
-    if (p_smd)
+    if (p_smd && msg_silent == 0)
 	redraw_cmdline = TRUE;	/* show visual mode later */
 #ifdef FEAT_CLIPBOARD
     /* Make sure the clipboard gets updated.  Needed because start and
@@ -8280,7 +8282,7 @@
     if (cap->nchar == Ctrl_N || cap->nchar == Ctrl_G)
     {
 	clearop(cap->oap);
-	if (restart_edit != 0 && p_smd)
+	if (restart_edit != 0 && p_smd && msg_silent == 0)
 	    clear_cmdline = TRUE;		/* unshow mode later */
 	restart_edit = 0;
 #ifdef FEAT_CMDWIN
