diff --git a/src/evalvars.c b/src/evalvars.c
index 196d4d4..305ffe5 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -369,17 +369,25 @@
     char_u	*fname_to)
 {
     int		err = FALSE;
+    sctx_T	saved_sctx = current_sctx;
+    sctx_T	*ctx;
 
     set_vim_var_string(VV_CC_FROM, enc_from, -1);
     set_vim_var_string(VV_CC_TO, enc_to, -1);
     set_vim_var_string(VV_FNAME_IN, fname_from, -1);
     set_vim_var_string(VV_FNAME_OUT, fname_to, -1);
+    ctx = get_option_sctx("charconvert");
+    if (ctx != NULL)
+	current_sctx = *ctx;
+
     if (eval_to_bool(p_ccv, &err, NULL, FALSE))
 	err = TRUE;
+
     set_vim_var_string(VV_CC_FROM, NULL, -1);
     set_vim_var_string(VV_CC_TO, NULL, -1);
     set_vim_var_string(VV_FNAME_IN, NULL, -1);
     set_vim_var_string(VV_FNAME_OUT, NULL, -1);
+    current_sctx = saved_sctx;
 
     if (err)
 	return FAIL;
diff --git a/src/optionstr.c b/src/optionstr.c
index 94a1e2a..4aa7cef 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -2329,8 +2329,7 @@
 # ifdef FEAT_POSTSCRIPT
 	    varp == &p_pexpr ||
 # endif
-	    FALSE
-	    )
+	    varp == &p_ccv)
     {
 	char_u	**p_opt = NULL;
 	char_u	*name;
@@ -2369,6 +2368,8 @@
 	if (varp == &p_pexpr)	// 'printexpr'
 	    p_opt = &p_pexpr;
 # endif
+	if (varp == &p_ccv)	// 'charconvert'
+	    p_opt = &p_ccv;
 
 	if (p_opt != NULL)
 	{
diff --git a/src/testdir/test_vim9_import.vim b/src/testdir/test_vim9_import.vim
index 482e759..3b7ec9c 100644
--- a/src/testdir/test_vim9_import.vim
+++ b/src/testdir/test_vim9_import.vim
@@ -905,6 +905,37 @@
   set printexpr=
 enddef
 
+def Test_import_in_charconvert()
+  var lines =<< trim END
+      vim9script
+      export def MakeUpper(): bool
+        var data = readfile(v:fname_in)
+        map(data, 'toupper(v:val)')
+        writefile(data, v:fname_out)
+        return false  # success
+      enddef
+  END
+  writefile(lines, 'Xconvert.vim')
+
+  lines =<< trim END
+      vim9script
+      import './Xconvert.vim' as conv
+      set charconvert=conv.MakeUpper()
+  END
+  CheckScriptSuccess(lines)
+
+  writefile(['one', 'two'], 'Xfile')
+  new Xfile
+  write ++enc=ucase Xfile1
+  assert_equal(['ONE', 'TWO'], readfile('Xfile1'))
+
+  delete('Xfile')
+  delete('Xfile1')
+  delete('Xconvert.vim')
+  bwipe!
+  set charconvert&
+enddef
+
 def Test_export_fails()
   CheckScriptFailure(['export var some = 123'], 'E1042:')
   CheckScriptFailure(['vim9script', 'export var g:some'], 'E1022:')
diff --git a/src/version.c b/src/version.c
index 824522f..a5bb606 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4193,
+/**/
     4192,
 /**/
     4191,
