diff --git a/src/eval.c b/src/eval.c
index 4e202f4..596fa52 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1405,7 +1405,8 @@
 }
 
 /*
- * Call some vimL function and return the result as a string
+ * Call vimL function "func" and return the result as a string.
+ * Returns NULL when calling the function fails.
  * Uses argv[argc] for the function arguments.
  */
     void *
@@ -1416,20 +1417,43 @@
     int		safe;		/* use the sandbox */
 {
     typval_T	rettv;
-    char_u	*retval = NULL;
+    char_u	*retval;
 
     if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
 	return NULL;
 
     retval = vim_strsave(get_tv_string(&rettv));
-
     clear_tv(&rettv);
-
     return retval;
 }
 
+#if defined(FEAT_COMPL_FUNC) || defined(PROTO)
 /*
- * Call some vimL function and return the result as a list
+ * Call vimL function "func" and return the result as a number.
+ * Returns -1 when calling the function fails.
+ * Uses argv[argc] for the function arguments.
+ */
+    long
+call_func_retnr(func, argc, argv, safe)
+    char_u      *func;
+    int		argc;
+    char_u      **argv;
+    int		safe;		/* use the sandbox */
+{
+    typval_T	rettv;
+    long	retval;
+
+    if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
+	return -1;
+
+    retval = get_tv_number_chk(&rettv, NULL);
+    clear_tv(&rettv);
+    return retval;
+}
+#endif
+
+/*
+ * Call vimL function "func" and return the result as a list
  * Uses argv[argc] for the function arguments.
  */
     void *
