diff --git a/src/eval.c b/src/eval.c
index 81c3ca2..4e4bbc0 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -10962,25 +10962,33 @@
     typval_T	*rettv;
 {
     char_u	*s;
-    char_u	*name = NULL;
 
     s = get_tv_string(&argvars[0]);
     if (s == NULL || *s == NUL || VIM_ISDIGIT(*s))
 	EMSG2(_(e_invarg2), s);
-    /* Don't check an autoload name for existence here, but still expand it 
-     * checking for validity */
-    else if ((name = get_expanded_name(s, vim_strchr(s, AUTOLOAD_CHAR) == NULL))
-									== NULL)
+    /* Don't check an autoload name for existence here. */
+    else if (vim_strchr(s, AUTOLOAD_CHAR) == NULL && !function_exists(s))
 	EMSG2(_("E700: Unknown function: %s"), s);
     else
     {
-	if (name == NULL)
-	    /* Autoload function, need to copy string */
-	    rettv->vval.v_string = vim_strsave(s);
+	if (STRNCMP(s, "s:", 2) == 0)
+	{
+	    char	sid_buf[25];
+
+	    /* Expand s: into <SNR>nr_, so that the function can also be
+	     * called from another script. Using trans_function_name() would
+	     * also work, but some plugins depend on the name being printable
+	     * text. */
+	    sprintf(sid_buf, "<SNR>%ld_", (long)current_SID);
+	    rettv->vval.v_string = alloc(STRLEN(sid_buf) + STRLEN(s + 2) + 1);
+	    if (rettv->vval.v_string != NULL)
+	    {
+		STRCPY(rettv->vval.v_string, sid_buf);
+		STRCAT(rettv->vval.v_string, s + 2);
+	    }
+	}
 	else
-	    /* Function found by get_expanded_name, string allocated by 
-	     * trans_function_name: no need to copy */
-	    rettv->vval.v_string = name;
+	    rettv->vval.v_string = vim_strsave(s);
 	rettv->v_type = VAR_FUNC;
     }
 }
