diff --git a/src/eval.c b/src/eval.c
index bae7280..b8d954d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1654,7 +1654,7 @@
     {
 	cc = *endp;
 	*endp = NUL;
-	if (in_vim9script() && check_reserved_name(lp->ll_name, NULL) == FAIL)
+	if (in_vim9script() && check_reserved_name(lp->ll_name, FALSE) == FAIL)
 	    return;
 
 	if (lp->ll_blob != NULL)
diff --git a/src/proto/vim9script.pro b/src/proto/vim9script.pro
index 9a0bcdf..1608255 100644
--- a/src/proto/vim9script.pro
+++ b/src/proto/vim9script.pro
@@ -19,5 +19,5 @@
 void hide_script_var(scriptitem_T *si, int idx, int func_defined);
 svar_T *find_typval_in_script(typval_T *dest, scid_T sid, int must_find);
 int check_script_var_type(svar_T *sv, typval_T *value, char_u *name, where_T where);
-int check_reserved_name(char_u *name, cctx_T *cctx);
+int check_reserved_name(char_u *name, int is_objm_access);
 /* vim: set ft=c : */
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index 1aee9e0..d89b14e 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -856,6 +856,27 @@
   END
   v9.CheckScriptSuccess(lines)
 
+  # access private member in lambda body
+  lines =<< trim END
+      vim9script
+
+      class Foo
+        this._x: number = 6
+
+        def Add(n: number): number
+          var Lam = () => {
+            this._x = this._x + n
+          }
+          Lam()
+          return this._x
+        enddef
+      endclass
+
+      var foo = Foo.new()
+      assert_equal(13, foo.Add(7))
+  END
+  v9.CheckScriptSuccess(lines)
+
   # check shadowing
   lines =<< trim END
       vim9script
diff --git a/src/version.c b/src/version.c
index 54d927e..f7ea30f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1569,
+/**/
     1568,
 /**/
     1567,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 265f846..e666357 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -1580,7 +1580,8 @@
 	else
 	{
 	    // No specific kind of variable recognized, just a name.
-	    if (check_reserved_name(lhs->lhs_name, cctx) == FAIL)
+	    if (check_reserved_name(lhs->lhs_name, lhs->lhs_has_index
+						&& *var_end == '.') == FAIL)
 		return FAIL;
 
 	    if (lookup_local(var_start, lhs->lhs_varlen,
diff --git a/src/vim9script.c b/src/vim9script.c
index 5bf2cc7..b1849db 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -838,7 +838,7 @@
     // parse type, check for reserved name
     p = skipwhite(p + 1);
     type = parse_type(&p, &si->sn_type_list, TRUE);
-    if (type == NULL || check_reserved_name(name, NULL) == FAIL)
+    if (type == NULL || check_reserved_name(name, FALSE) == FAIL)
     {
 	vim_free(name);
 	return p;
@@ -1127,17 +1127,13 @@
 };
 
     int
-check_reserved_name(char_u *name, cctx_T *cctx)
+check_reserved_name(char_u *name, int is_objm_access)
 {
     int idx;
 
     for (idx = 0; reserved[idx] != NULL; ++idx)
 	if (STRCMP(reserved[idx], name) == 0
-		// "this" can be used in an object method
-		&& !(STRCMP("this", name) == 0
-		    && cctx != NULL
-		    && cctx->ctx_ufunc != NULL
-		    && (cctx->ctx_ufunc->uf_flags & (FC_OBJECT|FC_NEW))))
+		&& !(STRCMP("this", name) == 0 && is_objm_access))
 	{
 	    semsg(_(e_cannot_use_reserved_name_str), name);
 	    return FAIL;
