diff --git a/doc/efun/call_other b/doc/efun/call_other
index b487f4d..ee6ebdd 100644
--- a/doc/efun/call_other
+++ b/doc/efun/call_other
@@ -1,10 +1,10 @@
 SYNOPSIS
-        unknown call_other(object ob, string fun, mixed arg, ...);
-        unknown call_other(object *ob, string fun, mixed arg, ...);
+        unknown call_other(object ob, string fun, mixed arg, ...)
+        unknown call_other(object *ob, string fun, mixed arg, ...)
 
-        ob->fun(mixed arg, ...);
-        ob->"fun"(mixed arg, ...);
-        ob->(fun)(mixed arg, ...);
+        ob->fun(mixed arg, ...)
+        ob->"fun"(mixed arg, ...)
+        ob->(fun)(mixed arg, ...)
 
 BESCHREIBUNG
         Ruft die in einem anderen Objekt <ob> die Funktion <fun> mit den
@@ -12,16 +12,14 @@
         Funktion <fun> geliefert wird (oder 0 fuer nicht existierende oder
         als void deklarierte  Funktionen).
 
-        Optional kann der Driver so konfigueriert werden, dass auch ein Array
-        von Objekten *<ob> akzeptiert wird. Die Funktion <fun> wird dann fuer
-        jedes Objekt <ob> im Array mit den Argumenten <arg...> aufgerufen.
+        Weiterhin wird auch ein Array von Objekten *<ob> akzeptiert. Die
+        Funktion <fun> wird dann fuer jedes Objekt <ob> im Array mit den
+        Argumenten <arg...> aufgerufen.
         Die einzelnen Resultate werden in einem Array zusammen gefasst und
         dieses Array dann als Endresultat von call_other() zurueck gegeben.
         Die Elemente von *<ob> koennen Objekte oder Namen von Objekten sein.
         Zerstoerte Objekte und 0 als Element geben eine 0 zurueck, fuehren
         aber nicht zu einem Fehler.
-        call_other() auf Arrays von Objekten ist im MG aktiviert, welches
-        durch das Define __LPC_ARRAY_CALLS__ angezeigt wird.
 
         Das Objekt (bzw. die Objekte) kann direkt oder ueber einen String
         (d.h. den Objektnamen) angegeben werden. Wenn ein String angegeben
@@ -69,18 +67,17 @@
         Benutzern auf und speichert das gesammelte Resultat in einer
         Variablen:
 
-            string * s;
+            string *s;
             s = (string *)users()->short();
-
-        Objekte laden (obsolet):
-            Compat: call_other("/users/luser/thing", "???", 0);
+            !Compat: call_other("/users/luser/thing", "???", 0);
+            Compat: call_other("users/luser/thing", "???", 0);
 
         Das sieht etwas merkwuerdig aus, wurde aber oft verwendet, um einfach
         ein Objekt zu laden. Dazu wurde die (nicht existierende) Funktion
         "???" im Objekt aufgerufen. Gluecklicherweise gibt es heute zu
-        diesem Zweck die Efun load_object(), also bitte nicht mehr verwenden.
+        diesem Zweck die Efun load_object().
 
-AENDERUNGEN
+GESCHICHTE
         In LDMud 3.2.8 wurden die folgenden Verbesserungen eingefuehrt:
           - die Formen x->"y"() und x->(y)() werden erkannt;
           - die Form x->y() kollidiert nicht mehr mit einer lokalen Variablen,
@@ -88,7 +85,10 @@
           - eine simul_efun call_other() erwischt auch Aufrufe der Form ->().
           - call_other kann auch auf Arrays von Objekten angewandt werden.
         LDMud 3.2.10 machte den Aufruf von Objektarrays konfigurierbar.
+        LDMud 3.3.113 fuehrte den Hook H_DEFAULT_METHOD ein.
+        LDMud 3.5.0 machte den Aufruf von Objektarrays nicht mehr optional.
 
 SIEHE AUCH
-        function_exists(E), call_resolved(E), create(A), pragma(LPC),
-        extern_call(E), functions(LPC)
+        call_direct(E), call_direct_resolved(E), call_resolved(E), create(A),
+        pragma(LPC), extern_call(E), function_exists(E), functions(LPC),
+        map_objects(E)
