diff --git a/doc/lfun/heal_self b/doc/lfun/heal_self
index 5f60547..53697a2 100644
--- a/doc/lfun/heal_self
+++ b/doc/lfun/heal_self
@@ -1,49 +1,68 @@
+
 heal_self()
+***********
 
-FUNKTION:
-    void heal_self(int points);
 
-ARGUMENTE:
-    points: Die dem Lebewesen zukommende Heilung.
+FUNKTION
+========
 
-BESCHREIBUNG:
-    Dem Lebewesen werden points Lebens- und Konzentrationspunkte 
-    gutgeschrieben und auf die aktuellen addiert. Es werden aber nicht
-    die maximalen Werte ueberschritten.
+   void heal_self(int points);
 
-RUECKGABEWERT:
-    Keiner
 
-BEISPIELE:
-    
-    AddCmd("pflueck&beere","pfluecke_cmd","Was moechtest Du pfluecken?");
+ARGUMENTE
+=========
 
-    int pfluecke_cmd(string str){
-        write("Du pflueckst eine Beere, isst sie und fuehlst Dich gleich "
-             +"viel besser.\n");
-        this_player()->heal_self(30);
-        return 1;
-    }
+   points: Die dem Lebewesen zukommende Heilung.
 
-    Der Spieler bekommt hier pro Beere die er pflueckt und isst je 30 LP/KP
-    zu seinen momentanen.
 
-BEMERKUNGEN: 
-    heal_self wird gerne fuer Heilstellen in Gebieten genommen, in denen ein
-    Spieler diese Heilung auch wirklich braucht. Dennoch ist der Einsatz un-
-    bedingt mit der Heilungsbalance abzusprechen und darauf zu achten, dass
-    pro reset() nur eine bestimmte Anzahl an Heilungen ausgegeben werden.
+BESCHREIBUNG
+============
 
-    Bei Heilstellen sollte eine evtl. Heilung des Spielers mit der eigens
-    dafuer eingerichteten Funktion check_and_update_timed_key realisiert
-    werden.
+   Dem Lebewesen werden points Lebens- und Konzentrationspunkte
+   gutgeschrieben und auf die aktuellen addiert. Es werden aber nicht
+   die maximalen Werte ueberschritten.
 
-SIEHE AUCH:
-    Verwandt:   restore_spell_points, restore_hit_points, buffer_hp
-		buffer_sp, check_and_update_timed_key
-    Gegenparts: do_damage, reduce_hit_points, reduce_spell_points
-    Props:      P_HP, P_SP
-    Konzept:    heilung
 
-----------------------------------------------------------------------------
+RUECKGABEWERT
+=============
+
+   Keiner
+
+
+BEISPIELE
+=========
+
+   AddCmd("pflueck&beere","pfluecke_cmd","Was moechtest Du pfluecken?");
+
+   int pfluecke_cmd(string str){
+       write("Du pflueckst eine Beere, isst sie und fuehlst Dich gleich "
+            +"viel besser.\n");
+       this_player()->heal_self(30);
+       return 1;
+   }
+
+   Der Spieler bekommt hier pro Beere die er pflueckt und isst je 30 LP/KP
+   zu seinen momentanen.
+
+BEMERKUNGEN:
+   heal_self wird gerne fuer Heilstellen in Gebieten genommen, in
+   denen ein Spieler diese Heilung auch wirklich braucht. Dennoch ist
+   der Einsatz un- bedingt mit der Heilungsbalance abzusprechen und
+   darauf zu achten, dass pro reset() nur eine bestimmte Anzahl an
+   Heilungen ausgegeben werden.
+
+   Bei Heilstellen sollte eine evtl. Heilung des Spielers mit der
+   eigens dafuer eingerichteten Funktion check_and_update_timed_key
+   realisiert werden.
+
+
+SIEHE AUCH
+==========
+
+   Verwandt:   restore_spell_points, restore_hit_points, buffer_hp
+               buffer_sp, check_and_update_timed_key
+   Gegenparts: do_damage, reduce_hit_points, reduce_spell_points
+   Props:      P_HP, P_SP
+   Konzept:    heilung
+
 Last modified: 27.05.2007 by Ennox
