diff --git a/src/testdir/test_vim9_disassemble.vim b/src/testdir/test_vim9_disassemble.vim
index 2862289..27d16a5 100644
--- a/src/testdir/test_vim9_disassemble.vim
+++ b/src/testdir/test_vim9_disassemble.vim
@@ -727,6 +727,43 @@
         instr)
 enddef
 
+def ForLoopEval(): string
+  let res = ""
+  for str in eval('["one", "two"]')
+    res ..= str
+  endfor
+  return res
+enddef
+
+def Test_disassemble_for_loop_eval()
+  assert_equal('onetwo', ForLoopEval())
+  let instr = execute('disassemble ForLoopEval')
+  assert_match('ForLoopEval\_s*' ..
+        'let res = ""\_s*' ..
+        '\d PUSHS ""\_s*' ..
+        '\d STORE $0\_s*' ..
+        'for str in eval(''\["one", "two"\]'')\_s*' ..
+        '\d STORE -1 in $1\_s*' ..
+        '\d PUSHS "\["one", "two"\]"\_s*' ..
+        '\d BCALL eval(argc 1)\_s*' ..
+        '\d CHECKTYPE list stack\[-1\]\_s*' ..
+        '\d FOR $1 -> \d\+\_s*' ..
+        '\d STORE $2\_s*' ..
+        'res ..= str\_s*' ..
+        '\d\+ LOAD $0\_s*' ..
+        '\d\+ LOAD $2\_s*' ..
+        '\d\+ CHECKTYPE string stack\[-1\]\_s*' ..
+        '\d\+ CONCAT\_s*' ..
+        '\d\+ STORE $0\_s*' ..
+        'endfor\_s*' ..
+        '\d\+ JUMP -> 6\_s*' ..
+        '\d\+ DROP\_s*' ..
+        'return res\_s*' ..
+        '\d\+ LOAD $0\_s*' ..
+        '\d\+ RETURN',
+        instr)
+enddef
+
 let g:number = 42
 
 def Computing()
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index e548717..726ca9a 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1440,6 +1440,12 @@
     result ..= cnt .. '_'
   endfor
   assert_equal('0_1_3_', result)
+
+  let concat = ''
+  for str in eval('["one", "two"]')
+    concat ..= str
+  endfor
+  assert_equal('onetwo', concat)
 enddef
 
 def Test_for_loop_fails()
@@ -1447,7 +1453,7 @@
   CheckDefFailure(['for i In range(5)'], 'E690:')
   CheckDefFailure(['let x = 5', 'for x in range(5)'], 'E1023:')
   CheckScriptFailure(['def Func(arg: any)', 'for arg in range(5)', 'enddef', 'defcompile'], 'E1006:')
-  CheckDefFailure(['for i in "text"'], 'E1024:')
+  CheckDefFailure(['for i in "text"'], 'E1013:')
   CheckDefFailure(['for i in xxx'], 'E1001:')
   CheckDefFailure(['endfor'], 'E588:')
   CheckDefFailure(['for i in range(3)', 'echo 3'], 'E170:')
diff --git a/src/version.c b/src/version.c
index f936783..b4b8b1d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1145,
+/**/
     1144,
 /**/
     1143,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index ed069b7..db24eae 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -6062,15 +6062,15 @@
 	return NULL;
     }
 
-    // now we know the type of "var"
+    // Now that we know the type of "var", check that it is a list, now or at
+    // runtime.
     vartype = ((type_T **)stack->ga_data)[stack->ga_len - 1];
-    if (vartype->tt_type != VAR_LIST)
+    if (need_type(vartype, &t_list_any, -1, cctx) == FAIL)
     {
-	emsg(_("E1024: need a List to iterate over"));
 	drop_scope(cctx);
 	return NULL;
     }
-    if (vartype->tt_member->tt_type != VAR_ANY)
+    if (vartype->tt_type == VAR_LIST && vartype->tt_member->tt_type != VAR_ANY)
 	var_lvar->lv_type = vartype->tt_member;
 
     // "for_end" is set when ":endfor" is found
