diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index c9f9027..eec5af6 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1384,6 +1384,21 @@
   CheckScriptFailure(lines, 'E1012:')
 enddef
 
+def Test_nested_lambda()
+  var lines =<< trim END
+    vim9script
+    def Func()
+      var x = 4
+      var Lambda1 = {-> 7}
+      var Lambda2 = {-> [Lambda1(), x]}
+      var res = Lambda2()
+      assert_equal([7, 4], res)
+    enddef
+    Func()
+  END
+  CheckScriptSuccess(lines)
+enddef
+
 def Test_sort_return_type()
   var res: list<number>
   res = [1, 2, 3]->sort()
diff --git a/src/version.c b/src/version.c
index 446ac55..b92e99b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1778,
+/**/
     1777,
 /**/
     1776,
diff --git a/src/vim9.h b/src/vim9.h
index a39fbbb..663faa6 100644
--- a/src/vim9.h
+++ b/src/vim9.h
@@ -326,10 +326,12 @@
 };
 
 // Number of entries used by stack frame for a function call.
-// - function index
-// - instruction index
-// - previous frame index
-#define STACK_FRAME_SIZE 3
+// - ec_dfunc_idx:   function index
+// - ec_iidx:        instruction index
+// - ec_outer_stack: stack used for closures  TODO: can we avoid this?
+// - ec_outer_frame: stack frame for closures
+// - ec_frame_idx:   previous frame index
+#define STACK_FRAME_SIZE 5
 
 
 #ifdef DEFINE_VIM9_GLOBALS
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 5a94354..4013571 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -239,7 +239,9 @@
     // Store current execution state in stack frame for ISN_RETURN.
     STACK_TV_BOT(0)->vval.v_number = ectx->ec_dfunc_idx;
     STACK_TV_BOT(1)->vval.v_number = ectx->ec_iidx;
-    STACK_TV_BOT(2)->vval.v_number = ectx->ec_frame_idx;
+    STACK_TV_BOT(2)->vval.v_string = (void *)ectx->ec_outer_stack;
+    STACK_TV_BOT(3)->vval.v_number = ectx->ec_outer_frame;
+    STACK_TV_BOT(4)->vval.v_number = ectx->ec_frame_idx;
     ectx->ec_frame_idx = ectx->ec_stack.ga_len;
 
     // Initialize local variables
@@ -455,7 +457,11 @@
     // Restore the previous frame.
     ectx->ec_dfunc_idx = STACK_TV(ectx->ec_frame_idx)->vval.v_number;
     ectx->ec_iidx = STACK_TV(ectx->ec_frame_idx + 1)->vval.v_number;
-    ectx->ec_frame_idx = STACK_TV(ectx->ec_frame_idx + 2)->vval.v_number;
+    ectx->ec_outer_stack =
+		       (void *)STACK_TV(ectx->ec_frame_idx + 2)->vval.v_string;
+    ectx->ec_outer_frame = STACK_TV(ectx->ec_frame_idx + 3)->vval.v_number;
+    // restoring ec_frame_idx must be last
+    ectx->ec_frame_idx = STACK_TV(ectx->ec_frame_idx + 4)->vval.v_number;
     dfunc = ((dfunc_T *)def_functions.ga_data) + ectx->ec_dfunc_idx;
     ectx->ec_instr = dfunc->df_instr;
 
