diff --git a/doc/lfun/heart_beat b/doc/lfun/heart_beat
index 6a314bd..475a781 100644
--- a/doc/lfun/heart_beat
+++ b/doc/lfun/heart_beat
@@ -1,42 +1,57 @@
+
 heart_beat()
+************
 
-FUNKTION:
-     protected void heart_beat();
 
-DEFINIERT IN:
-     /std/living/life.c
-     /std/living/combat.c
-     und anderen...
-     kann auch in beliebigen Objekten selbst definiert werden.
+FUNKTION
+========
 
-BESCHREIBUNG:
-     Diese Funktion wird alle zwei Sekunden vom GameDriver aufgerufen. Sie
-     regelt in der MG-MudLib das Heilen von Spielern und Monstern, den
-     Ablauf von Kampfrunden, die Verdauung etc.
+   protected void heart_beat();
 
-     Da heart_beat() ziemlich viele Ressourcen des GameDrivers verbraet,
-     sollte man Objekte mit heart_beat() nur so selten wie moeglich
-     benutzen! Und selbst dann sollte der heart_beat() nicht die ganze Zeit
-     ueber laufen, sondern sich so bald wie moeglich abschalten.
 
-     Das Ein- und Ausschalten des heart_beat()s erfolgt mit
-     set_heart_beat().
+DEFINIERT IN
+============
 
-BEMERKUNGEN:
-     1. Teuer, teuer, teuer!
-     2. Soll euer Viech pro "echtem" Heartbeat mehrere Kampfrunden haben,
-        benutzt dafuer SA_SPEED und ruft auf gar keinen Fall mehrfach 
-        ::heart_beat() auf. Also _NICHT_
-        void heart_beat() {
-            ::heart_beat();
-            ::heart_beat(); }
-        sondern:
-        SetProp(P_SKILL_ATTRIBUTE_OFFSETS, ([SA_SPEED: 200]) );
+   /std/living/life.c
+   /std/living/combat.c
+   und anderen...
+   kann auch in beliebigen Objekten selbst definiert werden.
 
-SIEHE AUCH:
-     Efuns:     set_heart_beat(), absolute_hb_count(), set_next_reset()
-     Fehler:    make_immortal(L)
 
-----------------------------------------------------------------------------
+BESCHREIBUNG
+============
+
+   Diese Funktion wird alle zwei Sekunden vom GameDriver aufgerufen. Sie
+   regelt in der MG-MudLib das Heilen von Spielern und Monstern, den
+   Ablauf von Kampfrunden, die Verdauung etc.
+
+   Da heart_beat() ziemlich viele Ressourcen des GameDrivers verbraet,
+   sollte man Objekte mit heart_beat() nur so selten wie moeglich
+   benutzen! Und selbst dann sollte der heart_beat() nicht die ganze Zeit
+   ueber laufen, sondern sich so bald wie moeglich abschalten.
+
+   Das Ein- und Ausschalten des heart_beat()s erfolgt mit
+   set_heart_beat().
+
+
+BEMERKUNGEN
+===========
+
+   1. Teuer, teuer, teuer!
+   2. Soll euer Viech pro "echtem" Heartbeat mehrere Kampfrunden haben,
+      benutzt dafuer SA_SPEED und ruft auf gar keinen Fall mehrfach
+      ::heart_beat() auf. Also _NICHT_
+      void heart_beat() {
+          ::heart_beat();
+          ::heart_beat(); }
+      sondern:
+      SetProp(P_SKILL_ATTRIBUTE_OFFSETS, ([SA_SPEED: 200]) );
+
+
+SIEHE AUCH
+==========
+
+   Efuns:     set_heart_beat(), absolute_hb_count(), set_next_reset()
+   Fehler:    make_immortal(L)
+
 22.3.2008, Zesstra
-
