diff --git a/src/eval.c b/src/eval.c
index c73d774..6b16cf9 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -6234,7 +6234,7 @@
     {"setbufvar",	3, 3, f_setbufvar},
     {"setcmdpos",	1, 1, f_setcmdpos},
     {"setline",		2, 2, f_setline},
-    {"setqflist",	1, 1, f_setqflist},
+    {"setqflist",	1, 2, f_setqflist},
     {"setreg",		2, 3, f_setreg},
     {"setwinvar",	3, 3, f_setwinvar},
     {"simplify",	1, 1, f_simplify},
@@ -10601,7 +10601,7 @@
     mode = get_map_mode(&which, 0);
 
     keys = replace_termcodes(keys, &keys_buf, TRUE, TRUE);
-    rhs = check_map(keys, mode, exact);
+    rhs = check_map(keys, mode, exact, FALSE);
     vim_free(keys_buf);
     if (rhs != NULL)
     {
@@ -12370,6 +12370,9 @@
     typval_T	*argvars;
     typval_T	*rettv;
 {
+    char_u	*act;
+    int		action = ' ';
+
     rettv->vval.v_number = -1;
 
 #ifdef FEAT_QUICKFIX
@@ -12379,7 +12382,14 @@
     {
 	list_T  *l = argvars[0].vval.v_list;
 
-	if (l != NULL && set_errorlist(l) == OK)
+	if (argvars[1].v_type == VAR_STRING)
+	{
+	    act = get_tv_string(&argvars[1]);
+	    if (*act == 'a' || *act == 'r')
+		action = *act;
+	}
+
+	if (l != NULL && set_errorlist(l, action) == OK)
 	    rettv->vval.v_number = 0;
     }
 #endif
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index fd55605..46a30c1 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -5128,13 +5128,13 @@
     static char *(mtable[]) = {"*", "g*", "[*", "]*", ":*",
 			       "/*", "/\\*", "\"*", "/\\(\\)",
 			       "?", ":?", "?<CR>", "g?", "g?g?", "g??",
-			       "/\\?", "/\\z(\\)",
+			       "/\\?", "/\\z(\\)", "\\=", ":s\\=",
 			       "[count]", "[quotex]", "[range]",
 			       "[pattern]", "\\|", "\\%$"};
     static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star",
 			       "/star", "/\\\\star", "quotestar", "/\\\\(\\\\)",
 			       "?", ":?", "?<CR>", "g?", "g?g?", "g??",
-			       "/\\\\?", "/\\\\z(\\\\)",
+			       "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=",
 			       "\\[count]", "\\[quotex]", "\\[range]",
 			       "\\[pattern]", "\\\\bar", "/\\\\%\\$"};
     int flags;
diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro
index 87621ca..cc2f2a7 100644
--- a/src/proto/quickfix.pro
+++ b/src/proto/quickfix.pro
@@ -21,7 +21,7 @@
 void ex_vimgrep __ARGS((exarg_T *eap));
 char_u *skip_vimgrep_pat __ARGS((char_u *p, char_u **s, int *flags));
 int get_errorlist __ARGS((list_T *list));
-int set_errorlist __ARGS((list_T *list));
+int set_errorlist __ARGS((list_T *list, int action));
 void ex_cbuffer __ARGS((exarg_T *eap));
 void ex_helpgrep __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
