updated for version 7.0187
diff --git a/src/window.c b/src/window.c
index bb2647c..6bb9c46 100644
--- a/src/window.c
+++ b/src/window.c
@@ -518,8 +518,9 @@
 		 */
 		if (bt_quickfix(curbuf))
 		{
-		    sprintf((char *)cbuf, "split +%ldcc",
-						 (long)curwin->w_cursor.lnum);
+		    sprintf((char *)cbuf, "split +%ld%s",
+				(long)curwin->w_cursor.lnum,
+				(curwin->w_llist_ref == NULL) ? "cc" : "ll");
 		    do_cmdline_cmd(cbuf);
 		}
 #endif
@@ -817,6 +818,9 @@
 #ifdef FEAT_JUMPLIST
 	copy_jumplist(curwin, wp);
 #endif
+#ifdef FEAT_QUICKFIX
+	copy_loclist(curwin, wp);
+#endif
 	if (curwin->w_localdir != NULL)
 	    wp->w_localdir = vim_strsave(curwin->w_localdir);
 
@@ -3182,6 +3186,10 @@
     free_jumplist(wp);
 #endif
 
+#ifdef FEAT_QUICKFIX
+    qf_free_all(wp);
+#endif
+
 #ifdef FEAT_GUI
     if (gui.in_use)
     {