diff --git a/src/popupwin.c b/src/popupwin.c
index 47e9238..8a3f500 100644
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -97,6 +97,8 @@
 	    for (i = 0; i < 4; ++i)
 		array[i] = 1;
 	    if (list != NULL)
+	    {
+		range_list_materialize(list);
 		for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
 							 ++i, li = li->li_next)
 		{
@@ -104,6 +106,7 @@
 		    if (nr >= 0)
 			array[i] = nr > max_val ? max_val : nr;
 		}
+	    }
 	}
     }
 }
@@ -476,6 +479,9 @@
 	wp->w_popup_prop_id = dict_get_number(d, (char_u *)"textpropid");
 }
 
+/*
+ * Handle "moved" and "mousemoved" arguments.
+ */
     static void
 handle_moved_argument(win_T *wp, dictitem_T *di, int mousemoved)
 {
@@ -506,11 +512,13 @@
 	     || di->di_tv.vval.v_list->lv_len == 3))
     {
 	list_T	    *l = di->di_tv.vval.v_list;
-	listitem_T  *li = l->lv_first;
+	listitem_T  *li;
 	int	    mincol;
 	int	    maxcol;
 
-	if (di->di_tv.vval.v_list->lv_len == 3)
+	range_list_materialize(l);
+	li = l->lv_first;
+	if (l->lv_len == 3)
 	{
 	    varnumber_T nr = tv_get_number(&l->lv_first->li_tv);
 
@@ -748,6 +756,7 @@
 	    listitem_T	*li;
 	    int		i;
 
+	    range_list_materialize(list);
 	    for (i = 0, li = list->lv_first; i < 4 && i < list->lv_len;
 						     ++i, li = li->li_next)
 	    {
@@ -780,6 +789,8 @@
 	    int		i;
 
 	    if (list != NULL)
+	    {
+		range_list_materialize(list);
 		for (i = 0, li = list->lv_first; i < 8 && i < list->lv_len;
 							 ++i, li = li->li_next)
 		{
@@ -787,6 +798,7 @@
 		    if (*str != NUL)
 			wp->w_border_char[i] = mb_ptr2char(str);
 		}
+	    }
 	    if (list->lv_len == 1)
 		for (i = 1; i < 8; ++i)
 		    wp->w_border_char[i] = wp->w_border_char[0];
@@ -833,6 +845,8 @@
 		    ok = FALSE;
 		    break;
 		}
+		else
+		    range_list_materialize(li->li_tv.vval.v_list);
 	    }
 	}
 	if (ok)
