diff --git a/doc/efun/funcall b/doc/efun/funcall
index e507ad6..25900ab 100644
--- a/doc/efun/funcall
+++ b/doc/efun/funcall
@@ -1,15 +1,37 @@
 SYNOPSIS
-        mixed funcall(closure cl, mixed arg, ...)
+        mixed funcall(closure cl, mixed arg ...)
 
-BESCHREIBUNG
-        Wertet die Closure <cl> aus. Die Argumente <args> werden als Argumente
-        an die Closure uebergeben. Wenn <cl> keine Closure ist, wird <cl>
-        zurueck gegeben.
+DESCRIPTION
+        Evaluates the closure. The extra args will be passed as args
+        to the closure. If cl is not a closure, it will simply be
+        returned.
 
-GESCHICHTE
-        Eingefuehrt in 3.2@70.
-        Das Zurueckgeben von <cl>, wenn es sich nicht um eine Closure handelt,
-            auch wenn Argumente angegeben wurden, wurde in 3.2.1 eingefuehrt.
+EXAMPLES
+        mixed eval(object ob, string func, mixed *args)
+        {
+            return funcall(#'call_other, ob, func, args);
+        }
 
-SIEHE AUCH
+        This will result in calling
+
+          ob->func(args).
+
+        In combination with the '...' operator, the functionality
+        of apply() can be implemented:
+
+        mixed eval(object ob, string func, mixed *args)
+        {
+            return funcall(#'call_other, ob, func, args...);
+        }
+
+        will result in calling
+
+          ob->func(args[0],args[1],...,args[sizeof(args)-1]).
+
+HISTORY
+        Introduced in 3.2@70.
+        Returning a non-closure as it is even when args are given was
+        introduced with 3.2.1.
+
+SEE ALSO
         apply(E), quote(E)
