diff --git a/src/quickfix.c b/src/quickfix.c
index 084d82e..3889a95 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -1163,8 +1163,8 @@
     qffields_T	    fields;
 #ifdef FEAT_WINDOWS
     qfline_T	    *old_last = NULL;
-    int		    adding = FALSE;
 #endif
+    int		    adding = FALSE;
     static efm_T    *fmt_first = NULL;
     char_u	    *efm;
     static char_u   *last_efm = NULL;
@@ -1199,14 +1199,15 @@
     if (newlist || qi->qf_curlist == qi->qf_listcount)
 	/* make place for a new list */
 	qf_new_list(qi, qf_title);
-#ifdef FEAT_WINDOWS
-    else if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
+    else
     {
 	/* Adding to existing list, use last entry. */
 	adding = TRUE;
-	old_last = qi->qf_lists[qi->qf_curlist].qf_last;
-    }
+#ifdef FEAT_WINDOWS
+	if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
+	    old_last = qi->qf_lists[qi->qf_curlist].qf_last;
 #endif
+    }
 
     /* Use the local value of 'errorformat' if it's set. */
     if (errorformat == p_efm && tv == NULL && *buf->b_p_efm != NUL)
@@ -4785,6 +4786,8 @@
 	    (void)get_errorlist(wp, qf_idx, l);
 	    dict_add_list(retdict, "items", l);
 	}
+	else
+	    status = FAIL;
     }
 
     if ((status == OK) && (flags & QF_GETLIST_CONTEXT))
@@ -4795,9 +4798,12 @@
 	    if (di != NULL)
 	    {
 		copy_tv(qi->qf_lists[qf_idx].qf_ctx, &di->di_tv);
-		if (dict_add(retdict, di) == FAIL)
+		status = dict_add(retdict, di);
+		if (status == FAIL)
 		    dictitem_free(di);
 	    }
+	    else
+		status = FAIL;
 	}
 	else
 	    status = dict_add_nr_str(retdict, "context", 0L, (char_u *)"");
@@ -5020,6 +5026,7 @@
 	if (ctx != NULL)
 	    copy_tv(&di->di_tv, ctx);
 	qi->qf_lists[qf_idx].qf_ctx = ctx;
+	retval = OK;
     }
 
     return retval;
