diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index cd8ac09..0d49a42 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -1623,6 +1623,10 @@
       export def FastSort(): list<number>
         return range(5)->sort(Compare)
       enddef
+
+      export def GetString(arg: string): string
+        return arg
+      enddef
   END
   writefile(sortlines, 'Xsort.vim')
 
@@ -1633,6 +1637,19 @@
       g:result = FastSort()
     enddef
     Test()
+
+    # using a function imported with "as"
+    import * as anAlias from './Xsort.vim'
+    assert_equal('yes', anAlias.GetString('yes'))
+
+    # using the function from a compiled function
+    def TestMore(): string
+      return anAlias.GetString('text')
+    enddef
+    assert_equal('text', TestMore())
+
+    # error when using a function that isn't exported
+    assert_fails('anAlias.Compare(1, 2)', 'E1049:')
   END
   writefile(lines, 'Xscript.vim')
 
diff --git a/src/version.c b/src/version.c
index 104073d..54370d3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2682,
+/**/
     2681,
 /**/
     2680,
diff --git a/src/vim9compile.c b/src/vim9compile.c
index 7238761..fa73de2 100644
--- a/src/vim9compile.c
+++ b/src/vim9compile.c
@@ -2720,12 +2720,18 @@
 								   cctx, TRUE);
 	    *p = cc;
 	    p = skipwhite(p);
-
-	    // TODO: what if it is a function?
-	    if (idx < 0)
-		return FAIL;
 	    *end = p;
 
+	    if (idx < 0)
+	    {
+		if (*p == '(' && ufunc != NULL)
+		{
+		    generate_PUSHFUNC(cctx, ufunc->uf_name, import->imp_type);
+		    return OK;
+		}
+		return FAIL;
+	    }
+
 	    generate_VIM9SCRIPT(cctx, ISN_LOADSCRIPT,
 		    import->imp_sid,
 		    idx,
diff --git a/src/vim9script.c b/src/vim9script.c
index 9839a06..a72ef55 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -298,8 +298,7 @@
     svar_T	*sv;
     scriptitem_T *script = SCRIPT_ITEM(sid);
 
-    // find name in "script"
-    // TODO: also find script-local user function
+    // Find name in "script".
     idx = get_script_item_idx(sid, name, 0, cctx);
     if (idx >= 0)
     {
@@ -341,6 +340,13 @@
 		semsg(_(e_item_not_found_in_script_str), name);
 	    return -1;
 	}
+	else if (((*ufunc)->uf_flags & FC_EXPORT) == 0)
+	{
+	    if (verbose)
+		semsg(_(e_item_not_exported_in_script_str), name);
+	    *ufunc = NULL;
+	    return -1;
+	}
     }
 
     return idx;
