diff --git a/doc/efun/to_object b/doc/efun/to_object
index bb577f0..1ca88da 100644
--- a/doc/efun/to_object
+++ b/doc/efun/to_object
@@ -1,15 +1,29 @@
 SYNOPSIS
-	object to_object(string arg)
-	object to_object(closure arg)
-	object to_object(object arg)
+        object to_object(string arg)
+        object to_object(closure arg)
+        object to_object(object arg)
 
-DESCRIPTION
-	The argument is converted into an object, if possible.
-	For strings, the object with a matching object_name() is
-	returned, or 0 if there is none, as find_object() does.
-	For (bound!) closures, the object holding the closure is
-	returned.
-	Objects and the number 0 return themselves.
+        (object)<value>
 
-SEE ALSO
-	find_object(E), to_array(E), to_int(E), to_string(E)
+BESCHREIBUNG
+        Das Argument <arg> wird in ein Objekt umgewandelt, wenn dies
+        moeglich ist.
+
+        Fuer Strings wird das Objekt mit entsprechendem object_name(<arg>)
+        zurueck gelierfert, oder 0, wenn es kein entsprechendes Objekt gibt.
+        Dies entspricht find_object().
+
+        Fuer (gebundene!) Closures wird das Objekt zurueck gegeben, das die
+        Closure enthaelt. Fuer "Alien Lfun Closures" ist das das Objekt, das
+        die Closure erzeugt hat, nicht das Objekt, in dem die Lfun definiert
+        ist.
+
+        Objekte und die Zahl 0 werden unveraendert zurueck gegeben.
+
+FEHLER
+        Die Cast-Schreibweise funktioniert nur, wenn der genaue Wert von
+        <value> zum Zeitpunkt der Kompilierung bekannt ist. Dies wird nicht
+        geaendert werden, da die Funktionsform verwendet werden kann.
+
+SIEHE AUCH
+        find_object(E), to_array(E), to_int(E), to_string(E), get_type_info(E)
