diff --git a/src/evalvars.c b/src/evalvars.c
index f325355..fd67ad0 100644
--- a/src/evalvars.c
+++ b/src/evalvars.c
@@ -303,12 +303,24 @@
     int
 garbage_collect_scriptvars(int copyID)
 {
-    int		i;
-    int		abort = FALSE;
+    int		    i;
+    int		    idx;
+    int		    abort = FALSE;
+    scriptitem_T    *si;
 
     for (i = 1; i <= script_items.ga_len; ++i)
+    {
 	abort = abort || set_ref_in_ht(&SCRIPT_VARS(i), copyID, NULL);
 
+	si = SCRIPT_ITEM(i);
+	for (idx = 0; idx < si->sn_var_vals.ga_len; ++idx)
+	{
+	    svar_T    *sv = ((svar_T *)si->sn_var_vals.ga_data) + idx;
+
+	    abort = abort || set_ref_in_item(sv->sv_tv, copyID, NULL, NULL);
+	}
+    }
+
     return abort;
 }
 
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 4cd2177..43c66cc 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -253,31 +253,47 @@
 def Test_block_local_vars()
   var lines =<< trim END
       vim9script
+      v:testing = 1
       if true
-        var text = 'hello'
-        def SayHello(): string
+        var text = ['hello']
+        def SayHello(): list<string>
           return text
         enddef
         def SetText(v: string)
-          text = v
+          text = [v]
         enddef
       endif
 
       if true
-        var text = 'again'
-        def SayAgain(): string
+        var text = ['again']
+        def SayAgain(): list<string>
           return text
         enddef
       endif
+
+      # test that the "text" variables are not cleaned up
+      test_garbagecollect_now()
+
       defcompile
 
-      assert_equal('hello', SayHello())
-      assert_equal('again', SayAgain())
+      assert_equal(['hello'], SayHello())
+      assert_equal(['again'], SayAgain())
 
       SetText('foobar')
-      assert_equal('foobar', SayHello())
+      assert_equal(['foobar'], SayHello())
+
+      call writefile(['ok'], 'Xdidit')
+      qall!
   END
-  CheckScriptSuccess(lines)
+
+  # need to execute this with a separate Vim instance to avoid the current
+  # context gets garbage collected.
+  writefile(lines, 'Xscript')
+  RunVim([], [], '-S Xscript')
+  assert_equal(['ok'], readfile('Xdidit'))
+
+  delete('Xscript')
+  delete('Xdidit')
 enddef
 
 func g:NoSuchFunc()
diff --git a/src/version.c b/src/version.c
index b0fe5e8..8ea210a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1849,
+/**/
     1848,
 /**/
     1847,
