diff --git a/doc/lfun/BecomesNetDead b/doc/lfun/BecomesNetDead
index fcfed7c..8938d13 100644
--- a/doc/lfun/BecomesNetDead
+++ b/doc/lfun/BecomesNetDead
@@ -1,45 +1,67 @@
+
 BecomesNetDead()
+****************
 
-FUNKTION:
-    void BecomesNetDead(object pl);
 
-GERUFEN VON:
-    /std/player/base.c
+FUNKTION
+========
 
-ARGUMENTE:
-    object pl
-      Spieler, der Verbindung zum MUD verliert.
+   void BecomesNetDead(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.
-    Um nun einen Ueberblick darueber zu erhalten, wann ein Spieler die
-    Verbindung zum MUD verliert, gibt es die Funktion BecomesNetDead().
-    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 BecomesNetAlive(), mit der man
-    auf aehnliche Weise erwachende Spieler registrieren kann.
+GERUFEN VON
+===========
 
-BEISPIELE:
-    Es gibt Gebiete, in denen netztote Spieler unerwuenscht sind.
-    Folgendermassen kann man sich ihrer wirkungsvoll entledigen:
-    
-    void BecomesNetDead(object pl) {
-      pl->move("eingangsraum zu gebiet", M_TPORT|M_NOCHECK);
-    }
-    Man schickt diese Spieler wieder zum Eingang des Gebietes.
-    Da der letzte Aufenthaltsort eines Spielers, der in den
-    Netztotenstatus uebergeht, erst nach Aufruf der Funktion
-    BecomesNetDead() abgespeichert wird, wacht der Spieler dann an dem
-    Ort auf, wo man Ihn innerhalb dieser Funktion hinteleportiert hat.
+   /std/player/base.c
 
-SIEHE AUCH:
-    BecomesNetAlive(), PlayerQuit(), /std/player/base.c, /room/netztot.c
 
-24. Aug 2011, Gloinson
\ No newline at end of file
+ARGUMENTE
+=========
+
+   object pl
+     Spieler, der Verbindung zum MUD verliert.
+
+
+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.
+   Um nun einen Ueberblick darueber zu erhalten, wann ein Spieler die
+   Verbindung zum MUD verliert, gibt es die Funktion BecomesNetDead().
+   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 BecomesNetAlive(), mit der man
+   auf aehnliche Weise erwachende Spieler registrieren kann.
+
+
+BEISPIELE
+=========
+
+   Es gibt Gebiete, in denen netztote Spieler unerwuenscht sind.
+   Folgendermassen kann man sich ihrer wirkungsvoll entledigen:
+
+
+
+   void BecomesNetDead(object pl) {
+     pl->move("eingangsraum zu gebiet", M_TPORT|M_NOCHECK);
+   }
+   Man schickt diese Spieler wieder zum Eingang des Gebietes.
+   Da der letzte Aufenthaltsort eines Spielers, der in den
+   Netztotenstatus uebergeht, erst nach Aufruf der Funktion
+   BecomesNetDead() abgespeichert wird, wacht der Spieler dann an dem
+   Ort auf, wo man Ihn innerhalb dieser Funktion hinteleportiert hat.
+
+
+SIEHE AUCH
+==========
+
+   BecomesNetAlive(), PlayerQuit(), /std/player/base.c, /room/netztot.c
+
+24. Aug 2011, Gloinson
