diff --git a/doc/lfun/init b/doc/lfun/init
index 481eec2..813c8f3 100644
--- a/doc/lfun/init
+++ b/doc/lfun/init
@@ -6,7 +6,7 @@
 FUNKTION
 ========
 
-   void init();
+   public varargs void init(object origin);
 
 
 DEFINIERT IN
@@ -18,7 +18,9 @@
 ARGUMENTE
 =========
 
-   keine
+   object origin
+      Ursprungsumgebung der Bewegung / letzte Umgebung des Lebewesen
+      (sofern existent)
 
 
 BESCHREIBUNG
@@ -32,12 +34,32 @@
    Der Hauptzweck dieser Funktion besteht darin, den Objekten
    untereinander ihre jeweiligen Befehle zugaenglich zu machen.
    Waehrend dies in anderen MudLibs durch eine Reihe von
-   add_action()-Aufrufen im Rumpf von init() geschah, geschieht dies in
-   der MG-MudLib bei Objekten, die /std/thing/commands.c erben
-    (das sind zB. alle Standardobjekte) quasi automatisch
-    (dort werden die Befehle dann per AddCmd() im create() angemeldet,
-     man spart sich die Implementierung von init() und dem Mud somit
-     Speicher). Der andere Weg ist aber natuerlich immer noch moeglich.
+   add_action()-Aufrufen im Rumpf von init() geschah, geschieht dies
+   in der MG-MudLib bei Objekten, die /std/thing/commands.c erben (das
+   sind zB. alle Standardobjekte) quasi automatisch (dort werden die
+   Befehle dann per AddCmd() im create() angemeldet, man spart sich
+   die Implementierung von init(). Der andere Weg ist aber natuerlich
+   immer noch moeglich.
+
+   Der Ablauf der init()-Kette ist wie folgt:
+
+      1. Ist das Objekt X, welches ins Zielobjekt D bewegt wurde,
+         ein Lebewesen, so wird in D init() aufgerufen, wobei
+         this_player() auf X gesetzt ist.
+
+      2. Dann wird fuer jedes Objekt C in D folgendes ausgefuehrt:
+
+         * Ist C ein Lebewesen, dann wird init() in X aufgerufen,
+           wobei this_player() auf C gesetzt ist.
+
+         * Ist X ein Lebewesen, dann wird init() in C aufgerufen,
+           wobei this_player() auf X gesetzt ist.
+
+      3. Schliesslich wird in dem Fall, dass D lebendig ist, in X
+         init() aufgerufen, wobei this_player() auf D gesetzt ist.
+
+   Das Argument <origin> kann genutzt werden, um herauszufinden, wo
+   das Lebewesen nun eigentlich herkam.
 
 
 RUeCKGABEWERT
@@ -49,43 +71,44 @@
 BEMERKUNGEN
 ===========
 
-   Der Ablauf der init()-Kette ist wie folgt:
-   o Ist das Objekt X, welches ins Zielobjekt D bewegt wurde, ein
-     Lebewesen, so wird in D init() aufgerufen, wobei this_player() auf
-     X gesetzt ist.
-   o Dann wird fuer jedes Objekt C in D folgendes ausgefuehrt:
-     + Ist C ein Lebewesen, dann wird init() in X aufgerufen, wobei
-       this_player() auf C gesetzt ist.
-     + Ist X ein Lebewesen, dann wird init() in C aufgerufen, wobei
-     this_player() auf X gesetzt ist.
-   o Schliesslich wird in dem Fall, dass D lebendig ist, in X init()
-     aufgerufen, wobei this_player() auf D gesetzt ist.
+   * Wenn man init() ueberschreibt und vergisst, in etwaigen
+     geerbten Programmen das init() zu rufen, resultiert das in
+     schweren Bugs
+
+   * Das Argument <origin> gab es frueher nicht und es ist
+     weitgehend optional. Die Standardlib uebergibt es, aber nicht
+     alle (speziell) aeltere Programme uebergeben es weiter an ihre
+     geerbten init().
 
 
 BEISPIELE
 =========
 
    D sei ein Raum, in dem sich das Lebewesen L1 sowie die Gegenstaende
-   N1 und N2 befinden.
-   Betritt ein Spieler X diesen Raum, so werden folgende init()s
-   aufgerufen:
+   N1 und N2 befinden. Betritt ein Spieler X diesen Raum, so werden
+   folgende init()s aufgerufen:
 
-     D->init();  // this_player() == X
-     X->init();  // this_player() == L1
-     L1->init(); // this_player() == X
-     N1->init(); // this_player() == X
-     N2->init(); // this_player() == X
+      1. D->init();  // this_player() == X
 
-   Gelangt dagegen ein nichtlebendiges Objekt nach D, so sieht das Ganze
-   wie folgt aus:
+      2. X->init();  // this_player() == L1
 
-     X->init();    // this_player() == L1
+      3. L1->init(); // this_player() == X
+
+      4. N1->init(); // this_player() == X
+
+      5. N2->init(); // this_player() == X
+
+   Gelangt dagegen ein nichtlebendiges Objekt nach D, so sieht das
+   Ganze wie folgt aus:
+
+      1. X->init();    // this_player() == L1
 
 
 SIEHE AUCH
 ==========
 
-         exit(), AddCmd(), add_action(),
-   NotifyInsert()
+   *exit()*, *AddCmd()*, *NotifyInsert()*
 
-Last modified: 04.08.2007, Zesstra
+   add_action(E)
+
+Last modified: 07.03.2018, Zesstra
