diff --git a/doc/sphinx/lfun/die.rst b/doc/sphinx/lfun/die.rst
index 84feb1d..f62cf17 100644
--- a/doc/sphinx/lfun/die.rst
+++ b/doc/sphinx/lfun/die.rst
@@ -3,65 +3,59 @@
 
 FUNKTION
 --------
-::
 
-     public varargs void die(int poisondeath,int extern);
+  public varargs void die(int poisondeath,int extern);
 
 DEFINIERT IN
 ------------
-::
 
-     /std/living/life.c
+  /std/living/life.c
 
 ARGUMENTE
 ---------
-::
 
-     int poisondeath
-	  Dieses Flag sollte bei einem Gifttod (P_POISON) gesetzt sein.
-     int extern
-	  Intern.
+  poisondeath
+    Dieses Flag sollte bei einem Gifttod (P_POISON) gesetzt sein.
+  extern
+    Intern.
 
 BESCHREIBUNG
 ------------
-::
 
-     Das Lebewesen stirbt, meist automatisch von do_damage() ausgeloest, wenn
-     0 HP unterschritten werden. In diesem Fall wird der Kampf beendet, Gift,
-     Alkohol, Trink- und Esswerte, Blindheit, Taubheit u.s.w. auf Null
-     gesetzt oder geloescht.
+  Das Lebewesen stirbt, meist automatisch von do_damage() ausgeloest, wenn
+  0 HP unterschritten werden. In diesem Fall wird der Kampf beendet, Gift,
+  Alkohol, Trink- und Esswerte, Blindheit, Taubheit u.s.w. auf Null
+  gesetzt oder geloescht.
 
-     Es wird automatisch eine Leiche (siehe auch P_CORPSE, P_NOCORPSE) nebst
-     Todesmeldungen (siehe auch P_DIE_MSG) erzeugt, und fuer Spieler werden
-     Killstupse vergeben, sofern notwendig.
+  Es wird automatisch eine Leiche (siehe auch P_CORPSE, P_NOCORPSE) nebst
+  Todesmeldungen (siehe auch P_DIE_MSG) erzeugt, und fuer Spieler werden
+  Killstupse vergeben, sofern notwendig.
 
-     Ueber den Hook P_TMP_DIE_HOOK kann man jedoch auf den Automatismus
-     Einfluss nehmen, z.B. koennte ein temporaerer Todesbann-Zauber das
-     Sterben fuer kurze Zeit verhindern.
+  Ueber den Hook P_TMP_DIE_HOOK kann man jedoch auf den Automatismus
+  Einfluss nehmen, z.B. koennte ein temporaerer Todesbann-Zauber das
+  Sterben fuer kurze Zeit verhindern.
 
 RUeCKGABEWERT
 -------------
-::
 
-     keiner
+  keiner
 
 BEMERKUNGEN
 -----------
-::
 
-     Diese Funktion sollte nur selten direkt verwendet werden. Meist ist der
-     uebliche Weg ueber Defend() -> do_damage() -> die() die logisch bessere
-     und balancetechnisch guenstigere Loesung.
+  Diese Funktion sollte nur selten direkt verwendet werden. Meist ist der
+  uebliche Weg ueber Defend() -> do_damage() -> die() die logisch bessere
+  und balancetechnisch guenstigere Loesung.
 
 SIEHE AUCH
 ----------
-::
 
-     Todesursachen:	Defend(L), do_damage(L), P_POISON
-     Verwandt:		P_TMP_DIE_HOOK, P_DEADS
-     Todesmeldungen:	P_KILL_NAME, P_KILL_MSG, P_MURDER_MSG, P_DIE_MSG
-			P_ZAP_MSG, P_ENEMY_DEATH_SEQUENCE
-     Sonstiges:		P_CORPSE, P_NOCORPSE, /std/corpse.c
+  :doc:`Defend`, :doc:`do_damage`, :doc:`../props/P_POISON`,
+  :doc:`../props/P_TMP_DIE_HOOK`, :doc:`../props/P_DEADS`,
+  :doc:`../props/P_KILL_NAME`, :doc:`../props/P_KILL_MSG`, 
+  :doc:`../props/P_MURDER_MSG`, :doc:`../props/P_DIE_MSG`,
+  :doc:`../props/P_ZAP_MSG`, :doc:`../props/P_ENEMY_DEATH_SEQUENCE`,
+  :doc:`../props/P_CORPSE`, :doc:`../props/P_NOCORPSE`, /std/corpse.c
 
 
 Last modified: Mon May 14 16:20:34 2001 by Patryn
