diff --git a/src/testdir/test_vim9_cmd.vim b/src/testdir/test_vim9_cmd.vim
index f638c84..dd6e966 100644
--- a/src/testdir/test_vim9_cmd.vim
+++ b/src/testdir/test_vim9_cmd.vim
@@ -357,6 +357,25 @@
 
   lines =<< trim END
       new
+      def Foo(): string
+        return 'the text'
+      enddef
+      def Bar(F: func): string
+        return F()
+      enddef
+      def Test()
+        Foo
+          ->Bar()
+          ->setline(1)
+      enddef
+      Test()
+      assert_equal('the text', getline(1))
+      bwipe!
+  END
+  CheckDefAndScriptSuccess(lines)
+
+  lines =<< trim END
+      new
       g:shortlist
           ->copy()
           ->setline(1)
diff --git a/src/version.c b/src/version.c
index 278f77b..48f3faa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2575,
+/**/
     2574,
 /**/
     2573,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index f6d1fb3..c781060 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -387,6 +387,26 @@
 }
 
 /*
+ * Return TRUE if "name" is a local variable, argument, script variable,
+ * imported or function.
+ */
+    static int
+item_exists(char_u *name, size_t len, cctx_T *cctx)
+{
+    int	    is_global;
+
+    if (variable_exists(name, len, cctx))
+	return TRUE;
+
+    // Find a function, so that a following "->" works.  Skip "g:" before a
+    // function name.
+    // Do not check for an internal function, since it might also be a
+    // valid command, such as ":split" versuse "split()".
+    is_global = (name[0] == 'g' && name[1] == ':');
+    return find_func(is_global ? name + 2 : name, is_global, cctx) != NULL;
+}
+
+/*
  * Check if "p[len]" is already defined, either in script "import_sid" or in
  * compilation context "cctx".  "cctx" is NULL at the script level.
  * Does not check the global namespace.
@@ -728,7 +748,7 @@
     }
     else if (type1 == VAR_ANY || type2 == VAR_ANY
 	    || ((type1 == VAR_NUMBER || type1 == VAR_FLOAT)
-	      && (type2 == VAR_NUMBER || type2 ==VAR_FLOAT)))
+	      && (type2 == VAR_NUMBER || type2 == VAR_FLOAT)))
 	isntype = ISN_COMPAREANY;
 
     if ((exprtype == EXPR_IS || exprtype == EXPR_ISNOT)
@@ -8399,8 +8419,7 @@
 	    }
 	}
 	p = find_ex_command(&ea, NULL, starts_with_colon ? NULL
-		   : (int (*)(char_u *, size_t, cctx_T *))variable_exists,
-									&cctx);
+		    : (int (*)(char_u *, size_t, cctx_T *))item_exists, &cctx);
 
 	if (p == NULL)
 	{
