diff --git a/doc/efun/symbol_function b/doc/efun/symbol_function
index 7178f93..177fdac 100644
--- a/doc/efun/symbol_function
+++ b/doc/efun/symbol_function
@@ -1,35 +1,30 @@
 SYNOPSIS
         closure symbol_function(symbol arg)
         closure symbol_function(string arg)
-        closure symbol_function(string arg, object|lwobject|string obj)
+        closure symbol_function(string arg, object|lwobject|string ob)
 
-BESCHREIBUNG
-        Erzeugt eine Lfun-, Efun- oder Operator-Closure aus <arg>, wobei
-        <arg> entweder ein string oder ein symbol sein muss. Fuer
-        Lfun-Closures gibt <obj> an, zu welchem Objekt die Lfun gehoert,
-        entweder angegeben durch das Objekt selbst (bzw. einen pointer
-        darauf) oder durch den Objektnamen als String. Wenn ein String
-        angegeben wird, wird das Objekt beim Aufruf geladen.
+DESCRIPTION
+        Constructs a lfun closure, efun closure or operator closure
+        from the first arg (string or symbol). For lfuns, the second
+        arg is the object that the lfun belongs to, specified by
+        the object itself or by its name (the object will be loaded
+        in the second case)
 
-        Wenn die Closure fuer eine Lfun in einem anderen als dem momentanen
-        Objekt erzeugt wird, ergibt dies eine "alien lfun closure". Solche
-        Closures sind an das Objekt gebunden, das symbol_function()
-        aufgerufen hat (dieses Objekt wird von to_object() geliefert),
-        obwohl der eigentliche Code in einem anderen Objekt steht (das mit
-        get_type_info() gefunden werden kann).
+        If the closure is created for an lfun in an object other than
+        the current object, the result is an 'alien lfun closure'. Such
+        closures are bound to the object executing the symbol_function()
+        (this is what to_object() will return), even though the actual
+        code is in that other object (which get_type_info() will return).
 
-        Als "private" deklarierte Funktionen koennen auf diese Weise nie
-        aufgerufen werden, "static" und "protected" deklarierte Lfuns nur
-        dann, wenn <obj> das gueltige Objekt ist.
+        Private lfuns can never be accessed this way, static and
+        protected lfuns only if <ob> is the current object.
 
-BEISPIELE
-        symbol_function("efun::users");
-            --> ergibt: #'users
-        symbol_function("QueryProp", other_obj);
-            --> ergibt: other_obj->QueryProp()
+EXAMPLES
+        symbol_function("efun::users")          -> #'users
+        symbol_function("QueryProp", other_obj) -> other_obj->QueryProp()
 
-GESCHICHTE
-        Eingefuehrt in 3.2@70.
+HISTORY
+        Introduced in 3.2@70.
 
-SIEHE AUCH
+SEE ALSO
         lambda(E), quote(E)
