diff --git a/src/mark.c b/src/mark.c
index 34825a6..008a0d0 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1518,7 +1518,13 @@
 	    {
 		for (idx = curwin->w_jumplistlen - 1; idx >= 0; --idx)
 		    if (curwin->w_jumplist[idx].time_set < timestamp)
+		    {
+			++idx;
 			break;
+		    }
+		if (idx < 0 && curwin->w_jumplistlen < JUMPLISTSIZE)
+		    /* insert as the oldest entry */
+		    idx = 0;
 	    }
 	    else if (curwin->w_jumplistlen < JUMPLISTSIZE)
 		/* insert as oldest entry */
@@ -1538,7 +1544,6 @@
 		else
 		{
 		    /* Move newer entries forward. */
-		    ++idx;
 		    for (i = curwin->w_jumplistlen; i > idx; --i)
 			curwin->w_jumplist[i] = curwin->w_jumplist[i - 1];
 		    ++curwin->w_jumplistidx;
@@ -1684,10 +1689,23 @@
     fputs(_("\n# Jumplist (newest first):\n"), fp);
     setpcmark();	/* add current cursor position */
     cleanup_jumplist();
-    /* TODO: when vi_jumplist != NULL merge the two lists. */
-    for (fm = &curwin->w_jumplist[curwin->w_jumplistlen - 1];
-					   fm >= &curwin->w_jumplist[0]; --fm)
+    vi_idx = 0;
+    idx = curwin->w_jumplistlen - 1;
+    for (i = 0; i < JUMPLISTSIZE; ++i)
     {
+	xfmark_T	*vi_fm;
+
+	fm = idx >= 0 ? &curwin->w_jumplist[idx] : NULL;
+	vi_fm = vi_idx < vi_jumplist_len ? &vi_jumplist[vi_idx] : NULL;
+	if (fm == NULL && vi_fm == NULL)
+	    break;
+	if (fm == NULL || (vi_fm != NULL && fm->time_set < vi_fm->time_set))
+	{
+	    fm = vi_fm;
+	    ++vi_idx;
+	}
+	else
+	    --idx;
 	if (fm->fmark.fnum == 0
 		|| ((buf = buflist_findnr(fm->fmark.fnum)) != NULL
 		    && !removable(buf->b_ffname)))
