diff --git a/src/eval.c b/src/eval.c
index e756243..8da8205 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -7185,8 +7185,6 @@
     hashtab_T	*ht;
     hashitem_T	*hi;
     dict_T	*d = NULL;
-    typval_T	save_val;
-    typval_T	save_key;
     blob_T	*b = NULL;
     int		rem;
     int		todo;
@@ -7225,18 +7223,19 @@
      * was not passed as argument. */
     if (expr->v_type != VAR_UNKNOWN)
     {
-	prepare_vimvar(VV_VAL, &save_val);
+	typval_T	save_val;
+	typval_T	save_key;
 
-	/* We reset "did_emsg" to be able to detect whether an error
-	 * occurred during evaluation of the expression. */
+	prepare_vimvar(VV_VAL, &save_val);
+	prepare_vimvar(VV_KEY, &save_key);
+
+	// We reset "did_emsg" to be able to detect whether an error
+	// occurred during evaluation of the expression.
 	save_did_emsg = did_emsg;
 	did_emsg = FALSE;
 
-	prepare_vimvar(VV_KEY, &save_key);
 	if (argvars[0].v_type == VAR_DICT)
 	{
-	    set_vim_var_type(VV_KEY, VAR_STRING);
-
 	    ht = &d->dv_hashtab;
 	    hash_lock(ht);
 	    todo = (int)ht->ht_used;
@@ -7274,7 +7273,9 @@
 	    int		i;
 	    typval_T	tv;
 
+	    // set_vim_var_nr() doesn't set the type
 	    set_vim_var_type(VV_KEY, VAR_NUMBER);
+
 	    for (i = 0; i < b->bv_ga.ga_len; i++)
 	    {
 		tv.v_type = VAR_NUMBER;
@@ -7285,7 +7286,7 @@
 		if (tv.v_type != VAR_NUMBER)
 		{
 		    emsg(_(e_invalblob));
-		    return;
+		    break;
 		}
 		tv.v_type = VAR_NUMBER;
 		blob_set(b, i, tv.vval.v_number);
@@ -7300,9 +7301,9 @@
 		}
 	    }
 	}
-	else
+	else // argvars[0].v_type == VAR_LIST
 	{
-	    // argvars[0].v_type == VAR_LIST
+	    // set_vim_var_nr() doesn't set the type
 	    set_vim_var_type(VV_KEY, VAR_NUMBER);
 
 	    for (li = l->lv_first; li != NULL; li = nli)
diff --git a/src/testdir/test_filter_map.vim b/src/testdir/test_filter_map.vim
index 1dd3a5b..72a8d84 100644
--- a/src/testdir/test_filter_map.vim
+++ b/src/testdir/test_filter_map.vim
@@ -53,6 +53,12 @@
   call assert_equal([0, 2, 4, 6], map([1, 2, 3, 4], function('s:filter4')))
 endfunc
 
+func Test_filter_map_nested()
+  let x = {"x":10}
+  let r = map(range(2), 'filter(copy(x), "1")')
+  call assert_equal([x, x], r)
+endfunc
+
 " dict with funcref
 func Test_filter_map_dict_expr_funcref()
   let dict = {"foo": 1, "bar": 2, "baz": 3}
diff --git a/src/version.c b/src/version.c
index fe8b34a..c159705 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1964,
+/**/
     1963,
 /**/
     1962,
