diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 18864cf..4e8ee88 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1784,6 +1784,22 @@
   delfunc! g:Func
 enddef
 
+def Test_continues_with_silent_error()
+  var lines =<< trim END
+      vim9script
+      g:result = 'none'
+      def Func()
+        silent!  g:result += 3
+        g:result = 'yes'
+      enddef
+      # error is silenced, function does not abort
+      Func()
+      assert_equal('yes', g:result)
+      unlet g:result
+  END
+  CheckScriptSuccess(lines)
+enddef
+
 def Test_abort_even_with_silent()
   var lines =<< trim END
       vim9script
@@ -1792,13 +1808,38 @@
         eval {-> ''}() .. '' .. {}['X']
         g:result = 'yes'
       enddef
-      sil! Func()
+      silent! Func()
       assert_equal('none', g:result)
       unlet g:result
   END
   CheckScriptSuccess(lines)
 enddef
 
+def Test_cmdmod_silent_restored()
+  var lines =<< trim END
+      vim9script
+      def Func()
+        g:result = 'none'
+        silent! g:result += 3
+        g:result = 'none'
+        g:result += 3
+      enddef
+      Func()
+  END
+  # can't use CheckScriptFailure, it ignores the :silent!
+  var fname = 'Xdefsilent'
+  writefile(lines, fname)
+  var caught = 'no'
+  try
+    exe 'source ' .. fname
+  catch /E1030:/
+    caught = 'yes'
+    assert_match('Func, line 4', v:throwpoint)
+  endtry
+  assert_equal('yes', caught)
+  delete(fname)
+enddef
+
 def Test_dict_member_with_silent()
   var lines =<< trim END
       vim9script
diff --git a/src/version.c b/src/version.c
index cfc1639..66ec86a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2096,
+/**/
     2095,
 /**/
     2094,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 2cd4b52..ee3d89e 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1933,14 +1933,8 @@
     static int
 generate_undo_cmdmods(cctx_T *cctx)
 {
-    isn_T	*isn;
-
-    if (cctx->ctx_has_cmdmod)
-    {
-	if ((isn = generate_instr(cctx, ISN_CMDMOD_REV)) == NULL)
-	    return FAIL;
-    }
-
+    if (cctx->ctx_has_cmdmod && generate_instr(cctx, ISN_CMDMOD_REV) == NULL)
+	return FAIL;
     return OK;
 }
 
@@ -7578,7 +7572,7 @@
 			line = compile_assignment(ea.cmd, &ea, CMD_SIZE, &cctx);
 			if (line == NULL || line == ea.cmd)
 			    goto erret;
-			continue;
+			goto nextline;
 		    }
 		}
 	    }
@@ -7590,7 +7584,7 @@
 		if (line == NULL)
 		    goto erret;
 		if (line != ea.cmd)
-		    continue;
+		    goto nextline;
 	    }
 	}
 
@@ -7629,7 +7623,7 @@
 	    if (cctx.ctx_skip == SKIP_YES)
 	    {
 		line += STRLEN(line);
-		continue;
+		goto nextline;
 	    }
 
 	    // Expression or function call.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index dd36cfa..980ebb5 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -2432,6 +2432,7 @@
 		    else
 #endif
 		    {
+			SOURCING_LNUM = iptr->isn_lnum;
 			n1 = tv_get_number_chk(tv1, &error);
 			if (error)
 			    goto on_error;
