diff --git a/src/eval.c b/src/eval.c
index 4336a26..e5131f3 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -931,7 +931,7 @@
     else
 	set_var_lval(redir_lval, redir_endp, &tv, TRUE, (char_u *)"=");
     err = did_emsg;
-    did_emsg += save_emsg;
+    did_emsg |= save_emsg;
     if (err)
     {
 	var_redir_stop();
@@ -979,7 +979,7 @@
     did_emsg = FALSE;
     set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)".");
     err = did_emsg;
-    did_emsg += save_emsg;
+    did_emsg |= save_emsg;
     if (err)
 	var_redir_stop();
 
@@ -8961,7 +8961,7 @@
     int		rem;
     int		todo;
     char_u	*msg = map ? (char_u *)"map()" : (char_u *)"filter()";
-    int		save_called_emsg;
+    int		save_did_emsg;
 
     rettv->vval.v_number = 0;
     if (argvars[0].v_type == VAR_LIST)
@@ -8991,11 +8991,10 @@
 	prepare_vimvar(VV_VAL, &save_val);
 	expr = skipwhite(expr);
 
-	/* We reset "called_emsg" to be able to detect whether an error
-	 * occurred during evaluation of the expression.  "did_emsg" can't be
-	 * used, because it is reset when calling a function. */
-	save_called_emsg = called_emsg;
-	called_emsg = FALSE;
+	/* We reset "did_emsg" to be able to detect whether an error
+	 * occurred during evaluation of the expression. */
+	save_did_emsg = did_emsg;
+	did_emsg = FALSE;
 
 	if (argvars[0].v_type == VAR_DICT)
 	{
@@ -9015,7 +9014,7 @@
 			break;
 		    vimvars[VV_KEY].vv_str = vim_strsave(di->di_key);
 		    if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL
-							       || called_emsg)
+								  || did_emsg)
 			break;
 		    if (!map && rem)
 			dictitem_remove(d, di);
@@ -9034,7 +9033,7 @@
 		    break;
 		nli = li->li_next;
 		if (filter_map_one(&li->li_tv, expr, map, &rem) == FAIL
-							       || called_emsg)
+								  || did_emsg)
 		    break;
 		if (!map && rem)
 		    listitem_remove(l, li);
@@ -9043,7 +9042,7 @@
 
 	restore_vimvar(VV_VAL, &save_val);
 
-	called_emsg |= save_called_emsg;
+	did_emsg |= save_did_emsg;
     }
 
     copy_tv(&argvars[0], rettv);
@@ -17830,6 +17829,7 @@
 	else
 	    eap->skip = TRUE;
     }
+
     /* An error in a function call during evaluation of an expression in magic
      * braces should not cause the function not to be defined. */
     saved_did_emsg = did_emsg;
