diff --git a/src/message.c b/src/message.c
index f793ed4..7bb154d 100644
--- a/src/message.c
+++ b/src/message.c
@@ -566,22 +566,25 @@
 	 */
 	if (emsg_silent != 0)
 	{
-	    msg_start();
-	    p = get_emsg_source();
-	    if (p != NULL)
+	    if (emsg_noredir == 0)
 	    {
-		STRCAT(p, "\n");
-		redir_write(p, -1);
-		vim_free(p);
+		msg_start();
+		p = get_emsg_source();
+		if (p != NULL)
+		{
+		    STRCAT(p, "\n");
+		    redir_write(p, -1);
+		    vim_free(p);
+		}
+		p = get_emsg_lnum();
+		if (p != NULL)
+		{
+		    STRCAT(p, "\n");
+		    redir_write(p, -1);
+		    vim_free(p);
+		}
+		redir_write(s, -1);
 	    }
-	    p = get_emsg_lnum();
-	    if (p != NULL)
-	    {
-		STRCAT(p, "\n");
-		redir_write(p, -1);
-		vim_free(p);
-	    }
-	    redir_write(s, -1);
 	    return TRUE;
 	}
 
@@ -3063,8 +3066,8 @@
 	    while (cur_col < msg_col)
 	    {
 #ifdef FEAT_EVAL
-		if (redir_evalcmd)
-		    evalcmd_redir_str((char_u *)" ", -1);
+		if (redir_execute)
+		    execute_redir_str((char_u *)" ", -1);
 		else if (redir_reg)
 		    write_reg_contents(redir_reg, (char_u *)" ", -1, TRUE);
 		else if (redir_vname)
@@ -3080,8 +3083,8 @@
 	}
 
 #ifdef FEAT_EVAL
-	if (redir_evalcmd)
-	    evalcmd_redir_str(s, maxlen);
+	if (redir_execute)
+	    execute_redir_str(s, maxlen);
 	else if (redir_reg)
 	    write_reg_contents(redir_reg, s, maxlen, TRUE);
 	else if (redir_vname)
@@ -3092,7 +3095,7 @@
 	while (*s != NUL && (maxlen < 0 || (int)(s - str) < maxlen))
 	{
 #ifdef FEAT_EVAL
-	    if (!redir_reg && !redir_vname && !redir_evalcmd)
+	    if (!redir_reg && !redir_vname && !redir_execute)
 #endif
 		if (redir_fd != NULL)
 		    putc(*s, redir_fd);
@@ -3117,7 +3120,7 @@
 {
     return redir_fd != NULL || *p_vfile != NUL
 #ifdef FEAT_EVAL
-			  || redir_reg || redir_vname || redir_evalcmd
+			  || redir_reg || redir_vname || redir_execute
 #endif
 				       ;
 }
