diff --git a/src/buffer.c b/src/buffer.c
index d8d0f3c..e50b01d 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4162,7 +4162,7 @@
 	tv.vval.v_number = wp->w_id;
 	set_var((char_u *)"g:statusline_winid", &tv, FALSE);
 
-	usefmt = eval_to_string_safe(fmt + 2, use_sandbox);
+	usefmt = eval_to_string_safe(fmt + 2, use_sandbox, FALSE);
 	if (usefmt == NULL)
 	    usefmt = fmt;
 
@@ -4546,7 +4546,7 @@
 	    if (curwin != save_curwin)
 		VIsual_active = FALSE;
 
-	    str = eval_to_string_safe(p, use_sandbox);
+	    str = eval_to_string_safe(p, use_sandbox, FALSE);
 
 	    curwin = save_curwin;
 	    curbuf = save_curbuf;
diff --git a/src/eval.c b/src/eval.c
index ec34ef1..2ca3377 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -555,14 +555,16 @@
     char_u *
 eval_to_string_safe(
     char_u	*arg,
-    int		use_sandbox)
+    int		use_sandbox,
+    int		keep_script_version)
 {
     char_u	*retval;
     funccal_entry_T funccal_entry;
     int		save_sc_version = current_sctx.sc_version;
     int		save_garbage = may_garbage_collect;
 
-    current_sctx.sc_version = 1;
+    if (!keep_script_version)
+	current_sctx.sc_version = 1;
     save_funccal(&funccal_entry);
     if (use_sandbox)
 	++sandbox;
diff --git a/src/findfile.c b/src/findfile.c
index 110e06b..3a64845 100644
--- a/src/findfile.c
+++ b/src/findfile.c
@@ -2097,7 +2097,7 @@
 
     set_vim_var_string(VV_FNAME, ptr, len);
     res = eval_to_string_safe(curbuf->b_p_inex,
-		      was_set_insecurely((char_u *)"includeexpr", OPT_LOCAL));
+		was_set_insecurely((char_u *)"includeexpr", OPT_LOCAL), FALSE);
     set_vim_var_string(VV_FNAME, NULL, 0);
     return res;
 }
diff --git a/src/fold.c b/src/fold.c
index 2a45d21..73c7116 100644
--- a/src/fold.c
+++ b/src/fold.c
@@ -1923,7 +1923,6 @@
     if (*wp->w_p_fdt != NUL)
     {
 	char_u	dashes[MAX_LEVEL + 2];
-	win_T	*save_curwin;
 	int	level;
 	char_u	*p;
 
@@ -1941,23 +1940,27 @@
 	set_vim_var_string(VV_FOLDDASHES, dashes, -1);
 	set_vim_var_nr(VV_FOLDLEVEL, (long)level);
 
-	// skip evaluating foldtext on errors
+	// skip evaluating 'foldtext' on errors
 	if (!got_fdt_error)
 	{
-	    save_curwin = curwin;
+	    win_T   *save_curwin = curwin;
+	    sctx_T  saved_sctx = current_sctx;
+
 	    curwin = wp;
 	    curbuf = wp->w_buffer;
+	    current_sctx = wp->w_p_script_ctx[WV_FDT];
 
-	    ++emsg_silent; // handle exceptions, but don't display errors
+	    ++emsg_off; // handle exceptions, but don't display errors
 	    text = eval_to_string_safe(wp->w_p_fdt,
-			 was_set_insecurely((char_u *)"foldtext", OPT_LOCAL));
-	    --emsg_silent;
+		    was_set_insecurely((char_u *)"foldtext", OPT_LOCAL), TRUE);
+	    --emsg_off;
 
 	    if (text == NULL || did_emsg)
 		got_fdt_error = TRUE;
 
 	    curwin = save_curwin;
 	    curbuf = curwin->w_buffer;
+	    current_sctx = saved_sctx;
 	}
 	last_lnum = lnum;
 	last_wp   = wp;
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index b0e94a0..abb9c56 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -14,7 +14,7 @@
 char_u *typval2string(typval_T *tv, int convert);
 char_u *eval_to_string_eap(char_u *arg, int convert, exarg_T *eap);
 char_u *eval_to_string(char_u *arg, int convert);
-char_u *eval_to_string_safe(char_u *arg, int use_sandbox);
+char_u *eval_to_string_safe(char_u *arg, int use_sandbox, int keep_script_version);
 varnumber_T eval_to_number(char_u *expr);
 typval_T *eval_expr(char_u *arg, exarg_T *eap);
 int call_vim_function(char_u *func, int argc, typval_T *argv, typval_T *rettv);
diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim
index df22a77..3608802 100644
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -683,6 +683,9 @@
       export def Expr(): string
         return getline(v:lnum) =~ '^#' ? '>1' : '1'
       enddef
+      export def Text(): string
+        return 'fold text'
+      enddef
       g:fold_loaded = 'yes'
   END
   writefile(lines, 'Xdir/autoload/fold.vim')
@@ -691,6 +694,7 @@
       vim9script
       import autoload 'fold.vim'
       &foldexpr = 'fold.Expr()'
+      &foldtext = 'fold.Text()'
       &foldmethod = 'expr'
       &debug = 'throw'
   END
@@ -706,7 +710,7 @@
   edit! otherfile
   redraw
 
-  set foldexpr= foldmethod& debug=
+  set foldexpr= foldtext& foldmethod& debug=
   bwipe!
   delete('Xdir', 'rf')
   &rtp = save_rtp
diff --git a/src/version.c b/src/version.c
index f273a15..86eb140 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4179,
+/**/
     4178,
 /**/
     4177,
