diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index 56d3bf2..8dea71d 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -1538,6 +1538,14 @@
   d.a = 7
   assert_equal({a: 7, b: 5}, d)
 
+  caught = false
+  try
+    lockvar d.c
+  catch /E716/
+    caught = true
+  endtry
+  assert_true(caught)
+
   var lines =<< trim END
       vim9script
       g:bl = 0z1122
diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim
index 2c7e731..5729d73 100644
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -858,6 +858,8 @@
   writefile(lines, 'XimportRel.vim')
   writefile(lines, 'XimportRel2.vim')
   writefile(lines, 'XimportRel3.vim')
+  writefile(lines, 'XimportRel4.vim')
+  writefile(lines, 'XimportRel5.vim')
 
   lines =<< trim END
       vim9script
@@ -928,17 +930,18 @@
   END
   v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 1)
 
+  # Same, script not imported before
   lines =<< trim END
       vim9script
-      import autoload './XimportRel.vim'
+      import autoload './XimportRel4.vim'
       def Func()
-        XimportRel.notexp = 'bad'
+        echo XimportRel4.notexp
       enddef
       Func()
   END
   v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 1)
 
-  # does not fail if the script wasn't loaded yet
+  # does not fail if the script wasn't loaded yet and only compiling
   g:loaded = 'no'
   lines =<< trim END
       vim9script
@@ -951,6 +954,16 @@
   v9.CheckScriptSuccess(lines)
   assert_equal('no', g:loaded)
 
+  lines =<< trim END
+      vim9script
+      import autoload './XimportRel.vim'
+      def Func()
+        XimportRel.notexp = 'bad'
+      enddef
+      Func()
+  END
+  v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: notexp', 1)
+
   # fails with a not loaded import
   lines =<< trim END
       vim9script
@@ -964,9 +977,37 @@
   assert_equal('yes', g:loaded)
   unlet g:loaded
 
+  lines =<< trim END
+      vim9script
+      import autoload './XimportRel5.vim'
+      def Func()
+        XimportRel5.nosuchvar = 'bad'
+      enddef
+      Func()
+  END
+  v9.CheckScriptFailure(lines, 'E121: Undefined variable: nosuchvar', 1)
+  unlet g:loaded
+
+  # nasty: delete script after compiling function
+  writefile(['vim9script'], 'XimportRelDel.vim')
+  lines =<< trim END
+      vim9script
+
+      import autoload './XimportRelDel.vim'
+      def DoIt()
+        echo XimportRelDel.var
+      enddef
+      defcompile
+      delete('XimportRelDel.vim')
+      DoIt()
+  END
+  v9.CheckScriptFailure(lines, 'E456:')
+
   delete('XimportRel.vim')
   delete('XimportRel2.vim')
   delete('XimportRel3.vim')
+  delete('XimportRel4.vim')
+  delete('XimportRel5.vim')
 enddef
 
 def Test_autoload_import_relative_autoload_dir()
@@ -1576,10 +1617,10 @@
   var lines =<< trim END
       vim9script
 
-      if exists('g:loaded')
+      if exists('g:loadedThis')
         finish
       endif
-      g:loaded = 1
+      g:loadedThis = 1
       delcommand CallFunc
       command CallFunc Func()
       def Func()
@@ -1594,7 +1635,7 @@
 
   delete('XreloadFunc.vim')
   delcommand CallFunc
-  unlet g:loaded
+  unlet g:loadedThis
   unlet g:didTheFunc
 enddef
 
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 56842b3..02946a3 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -2130,6 +2130,17 @@
       endfor
       assert_equal('', res)
 
+      total = 0
+      for c in null_list
+        total += 1
+      endfor
+      assert_equal(0, total)
+
+      for c in null_blob
+        total += 1
+      endfor
+      assert_equal(0, total)
+
       var foo: list<dict<any>> = [
               {a: 'Cat'}
             ]
diff --git a/src/version.c b/src/version.c
index b2986d7..22191c9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4678,
+/**/
     4677,
 /**/
     4676,
diff --git a/src/vim9execute.c b/src/vim9execute.c
index a6789b5..483fe1e 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2636,7 +2636,10 @@
 			SOURCING_LNUM = iptr->isn_lnum;
 			if (do_source(si->sn_name, FALSE, DOSO_NONE, NULL)
 								       == FAIL)
+			{
+			    semsg(_(e_cant_open_file_str_2), si->sn_name);
 			    goto on_error;
+			}
 		    }
 		}
 		break;
