diff --git a/doc/lfun/BecomesNetAlive b/doc/lfun/BecomesNetAlive
index 22a6cdc..a64f328 100644
--- a/doc/lfun/BecomesNetAlive
+++ b/doc/lfun/BecomesNetAlive
@@ -1,46 +1,68 @@
+
 BecomesNetAlive()
+*****************
 
-FUNKTION:
-    void BecomesNetAlive(object pl);
 
-GERUFEN VON:
-    /std/player/base.c
+FUNKTION
+========
 
-ARGUMENTE:
-    pl
-      Spieler, der Verbindung zum MUD wiedererlangt.
+   void BecomesNetAlive(object pl);
 
-BESCHREIBUNG:
-    Spieler, welche die Verbindung zum MUD freiwillig
-    (z.B. per 'schlafe ein') oder unfreiwillig verlieren, gehen in den
-    Netztotenstatus ueber. Sie verbleiben noch eine definierte Zeit in
-    der zuletzt betretenen Umgebung und werden schliesslich automatisch
-    in den Netztotenraum ueberfuehrt.
-    Wird die Verbindung wieder aufgebaut, so wird der Spielercharakter
-    wieder zum Leben erweckt und gegebenenfalls zuvor aus dem
-    Netztotenraum zurueck zu seiner letzten Umgebung teleportiert.
-    Um nun einen Ueberblick darueber zu erhalten, wann ein Spieler die
-    Verbindung zum MUD wiederherstellt, gibt es die Funktion
-    BecomesNetAlive(). Sie wird automatisch in der Umgebung des
-    Spielers, in allen Objekten in der Umgebung des Spielers
-    (nicht rekursiv) und in allen Objekten im Spieler (rekursiv)
-    aufgerufen. Uebergeben wird hierbei das Spielerobjekt.
 
-    Es gibt auch noch die Funktion BecomesNetDead(), mit der man
-    auf aehnliche Weise einschlafende Spieler registrieren kann.
+GERUFEN VON
+===========
 
-BEISPIELE:
-    In einem NPC waere folgendes denkbar:
-    
-    void BecomesNetAlive(object pl) {
-      tell_room(environment(),break_string(
-        "Guten Morgen "+pl->name(WER)+", auch schon ausgeschlafen?!", 77,
-        Name(WER)+" sagt grinsend: "));
-    }
-    Steht der NPC in einem Raum, wo ein Spieler aufwacht, so wird der
-    Spieler gebuehrend begruesst.
+   /std/player/base.c
 
-SIEHE AUCH:
-    BecomesNetDead(), PlayerQuit(), /std/player/base.c, /room/netztot.c
 
-24. Aug 2011 Gloinson
\ No newline at end of file
+ARGUMENTE
+=========
+
+   pl
+     Spieler, der Verbindung zum MUD wiedererlangt.
+
+
+BESCHREIBUNG
+============
+
+   Spieler, welche die Verbindung zum MUD freiwillig
+   (z.B. per 'schlafe ein') oder unfreiwillig verlieren, gehen in den
+   Netztotenstatus ueber. Sie verbleiben noch eine definierte Zeit in
+   der zuletzt betretenen Umgebung und werden schliesslich automatisch
+   in den Netztotenraum ueberfuehrt.
+   Wird die Verbindung wieder aufgebaut, so wird der Spielercharakter
+   wieder zum Leben erweckt und gegebenenfalls zuvor aus dem
+   Netztotenraum zurueck zu seiner letzten Umgebung teleportiert.
+   Um nun einen Ueberblick darueber zu erhalten, wann ein Spieler die
+   Verbindung zum MUD wiederherstellt, gibt es die Funktion
+   BecomesNetAlive(). Sie wird automatisch in der Umgebung des
+   Spielers, in allen Objekten in der Umgebung des Spielers
+   (nicht rekursiv) und in allen Objekten im Spieler (rekursiv)
+   aufgerufen. Uebergeben wird hierbei das Spielerobjekt.
+
+   Es gibt auch noch die Funktion BecomesNetDead(), mit der man
+   auf aehnliche Weise einschlafende Spieler registrieren kann.
+
+
+BEISPIELE
+=========
+
+   In einem NPC waere folgendes denkbar:
+
+
+
+   void BecomesNetAlive(object pl) {
+     tell_room(environment(),break_string(
+       "Guten Morgen "+pl->name(WER)+", auch schon ausgeschlafen?!", 77,
+       Name(WER)+" sagt grinsend: "));
+   }
+   Steht der NPC in einem Raum, wo ein Spieler aufwacht, so wird der
+   Spieler gebuehrend begruesst.
+
+
+SIEHE AUCH
+==========
+
+   BecomesNetDead(), PlayerQuit(), /std/player/base.c, /room/netztot.c
+
+24. Aug 2011 Gloinson
