diff --git a/doc/props/P_TIMED_ATTR_MOD b/doc/props/P_TIMED_ATTR_MOD
index 1175c50..fa7db3f 100644
--- a/doc/props/P_TIMED_ATTR_MOD
+++ b/doc/props/P_TIMED_ATTR_MOD
@@ -1,59 +1,78 @@
-NAME:
-    P_TIMED_ATTR_MOD         "timed_attr_mod"
 
-DEFINIERT IN:
-    /sys/living/attributes.h
+P_TIMED_ATTR_MOD
+****************
 
-BESCHREIBUNG:
-    In dieser Property werden Attribut-Modifikatoren gespeichert, die
-    nicht ueber laengere Zeit wirksam sein sollen.
-    Die Wirksamkeit der Modifikatoren kann an Zeit und Objekte
-    gebunden werden.
 
-    Intern werden die Modifikatoren in einer Datenstruktur der Form
+NAME
+====
 
-    ({
-       ({ Ablaufzeiten }),
-       ([ Key : Ablaufobjekt ]),
-       ([ Key : ([ Mapping mit den Modifikatoren ]);
-         Ablaufzeit ; Ablaufobjekt ; Nachrichtenempfaenger
-       ])
-    })
+   P_TIMED_ATTR_MOD         "timed_attr_mod"
 
-    gespeichert mit:
-    * Ablaufzeiten:  Zeit in Sekunden seit 1. Jan 1970, 0.0:0 GMT
-    * Ablaufobjekte: Objekte, an deren Existenz die Attribut-
-                     veraenderungen gebunden sind
-    * Nachrichtenempfaenger:
-      Objekte/Klassen, welche ueber abgelaufene Attributveraenderung
-      durch den Aufruf von "NotifyTimedAttrModExpired" (mit key als
-      Argument) benachrichtigt werden.
 
-    Das Setzen der Werte erfolgt NUR ueber die Methoden SetTimedAttrModifier
-    und DeleteTimedAttrModifier.
+DEFINIERT IN
+============
 
-    Die Daten zu einem Key koennen ueber QueryTimedAttrModifier abgefragt
-    werden. Die Abfrage mittels QueryProp liefert eine Kopie der gueltigen
-    Datenstruktur, die per Query nicht (siehe Bemerkungen).
+   /sys/living/attributes.h
 
-    Die Bedingungen fuer die ueber P_TIMED_ATTR_MOD gesetzten
-    Attributveraenderungen werden im Heartbeat in der Funktion
-    attribute_hb ueberprueft. Eine verminderte Funktionalitaet im
-    Falle von Magiern ist somit kein Fehlerfall.
 
-BEMERKUNGEN:
-    Keine echte Property. Die Methode _query_timed_attr_mod() in
-    /std/living/attributes.c stellt die Daten zusammen.
+BESCHREIBUNG
+============
 
-    ACHTUNG: Bitte nur die bereitgestellten Methoden zur Manipulation
-             benutzen! Setzen als Property hat keinen Effekt.
+   In dieser Property werden Attribut-Modifikatoren gespeichert, die
+   nicht ueber laengere Zeit wirksam sein sollen.
+   Die Wirksamkeit der Modifikatoren kann an Zeit und Objekte
+   gebunden werden.
 
-SIEHE AUCH:
-    QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
-    SetAttribute(), SetRealAttribute(), UpdateAttributes(),
-    SetTimedAttrModifier(), QueryTimedAttrModifier(),
-    DeleteTimedAttrModifier(),
-    P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,
-    P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
-----------------------------------------------------------------------------
+   Intern werden die Modifikatoren in einer Datenstruktur der Form
+
+   ({
+      ({ Ablaufzeiten }),
+      ([ Key : Ablaufobjekt ]),
+      ([ Key : ([ Mapping mit den Modifikatoren ]);
+        Ablaufzeit ; Ablaufobjekt ; Nachrichtenempfaenger
+      ])
+   })
+
+   gespeichert mit:
+   * Ablaufzeiten:  Zeit in Sekunden seit 1. Jan 1970, 0.0:0 GMT
+   * Ablaufobjekte: Objekte, an deren Existenz die Attribut-
+                    veraenderungen gebunden sind
+   * Nachrichtenempfaenger:
+     Objekte/Klassen, welche ueber abgelaufene Attributveraenderung
+     durch den Aufruf von "NotifyTimedAttrModExpired" (mit key als
+     Argument) benachrichtigt werden.
+
+   Das Setzen der Werte erfolgt NUR ueber die Methoden SetTimedAttrModifier
+   und DeleteTimedAttrModifier.
+
+   Die Daten zu einem Key koennen ueber QueryTimedAttrModifier abgefragt
+   werden. Die Abfrage mittels QueryProp liefert eine Kopie der gueltigen
+   Datenstruktur, die per Query nicht (siehe Bemerkungen).
+
+   Die Bedingungen fuer die ueber P_TIMED_ATTR_MOD gesetzten
+   Attributveraenderungen werden im Heartbeat in der Funktion
+   attribute_hb ueberprueft. Eine verminderte Funktionalitaet im
+   Falle von Magiern ist somit kein Fehlerfall.
+
+
+BEMERKUNGEN
+===========
+
+   Keine echte Property. Die Methode _query_timed_attr_mod() in
+   /std/living/attributes.c stellt die Daten zusammen.
+
+   ACHTUNG: Bitte nur die bereitgestellten Methoden zur Manipulation
+            benutzen! Setzen als Property hat keinen Effekt.
+
+
+SIEHE AUCH
+==========
+
+   QueryAttribute(), QueryRealAttribute(), QueryAttributeOffset(),
+   SetAttribute(), SetRealAttribute(), UpdateAttributes(),
+   SetTimedAttrModifier(), QueryTimedAttrModifier(),
+   DeleteTimedAttrModifier(),
+   P_ATTRIBUTES, P_ATTRIBUTES_OFFSETS, P_ATTRIBUTES_MODIFIER,
+   P_X_ATTR_MOD, P_M_ATTR_MOD, /std/living/attributes.c
+
 Last modified: Tue Jul 27 20:00:20 2004 by Muadib
