diff --git a/doc/props/U_REQ b/doc/props/U_REQ
index cb395db..1594c4f 100644
--- a/doc/props/U_REQ
+++ b/doc/props/U_REQ
@@ -1,63 +1,83 @@
-NAME:
-    U_REQ                         "u_req"
 
-DEFINIERT IN:
-    /sys/unit.h
+U_REQ
+*****
 
-BESCHREIBUNG:
-     Die Prop kann in Unitobjekten gesetzt werden.
-     Sie gibt die Anzahl der Einheiten an, die an der Unit manipuliert werden
-     sollen, falls mit weniger als P_AMOUNT umgegegangen werden soll.
-     
-     Die Prop wird automatisch gesetzt, wenn id() an einem Unitobjekt gerufen
-     wird und die ID grundsaetzlich zutreffend ist, die aus der ID ermittelte
-     Zahl aber kleiner als P_AMOUNT ist.
-     Sie kann auch manuell mittel SetProp() (aber nicht Set()) gesetzt werden.
 
-     U_REQ wird beim Bewegen und Zerstoeren, bei Ermittlung von Wert und
-     Gewicht beruecksichtigt.
+NAME
+====
 
-     U_REQ wird vom Unitobjekt automatisch wieder auf P_AMOUNT gesetzt, wenn
-     sich query_verb() oder debug_info(DINFO_EVAL_NUMBER) veraendert haben.
-     (DINFO_EVAL_NUMBER ist eine Zahl, die sich jedesmal erhoeht, wenn der
-      Driver eine neue Berechnung/Ausfuehrung beginnt. Diese Nummer wird fuer
-      jeden vom driver initiierten Aufruf von LPC-Code erhoeht, z.B. bei jedem
-      Kommando, call_out, heart_beat etc. Details s. debug_info().)
+   U_REQ                         "u_req"
 
-     Ebenso wird U_REQ bei der Vereinigung mit einem anderen (gleichen)
-     Objekt auf P_AMOUNT des vereinigten Objektes gesetzt.
+
+DEFINIERT IN
+============
+
+   /sys/unit.h
+
+
+BESCHREIBUNG
+============
+
+   Die Prop kann in Unitobjekten gesetzt werden.
+   Sie gibt die Anzahl der Einheiten an, die an der Unit manipuliert werden
+   sollen, falls mit weniger als P_AMOUNT umgegegangen werden soll.
+
+
+
+   Die Prop wird automatisch gesetzt, wenn id() an einem Unitobjekt gerufen
+   wird und die ID grundsaetzlich zutreffend ist, die aus der ID ermittelte
+   Zahl aber kleiner als P_AMOUNT ist.
+   Sie kann auch manuell mittel SetProp() (aber nicht Set()) gesetzt werden.
+
+   U_REQ wird beim Bewegen und Zerstoeren, bei Ermittlung von Wert und
+   Gewicht beruecksichtigt.
+
+   U_REQ wird vom Unitobjekt automatisch wieder auf P_AMOUNT gesetzt, wenn
+   sich query_verb() oder debug_info(DINFO_EVAL_NUMBER) veraendert haben.
+   (DINFO_EVAL_NUMBER ist eine Zahl, die sich jedesmal erhoeht, wenn der
+    Driver eine neue Berechnung/Ausfuehrung beginnt. Diese Nummer wird fuer
+    jeden vom driver initiierten Aufruf von LPC-Code erhoeht, z.B. bei jedem
+    Kommando, call_out, heart_beat etc. Details s. debug_info().)
+
+   Ebenso wird U_REQ bei der Vereinigung mit einem anderen (gleichen)
+   Objekt auf P_AMOUNT des vereinigten Objektes gesetzt.
 
 
 BUGS
-    Viele. Dies ist ein uebler Hack. Geht aber nicht ohne.
-    Diese Prop war endlos lang gar nicht dokumentiert. Hier beschrieben ist
-    das Verhalten, was zur Zeit vorliegt. Dies mag unterschiedlich zu dem
-    irgendwann intendierten sein.
+====
+
+   Viele. Dies ist ein uebler Hack. Geht aber nicht ohne.
+   Diese Prop war endlos lang gar nicht dokumentiert. Hier beschrieben ist
+   das Verhalten, was zur Zeit vorliegt. Dies mag unterschiedlich zu dem
+   irgendwann intendierten sein.
 
 
 BEISPIELE
-    object o = clone_object("unitobjekt");
-    o->SetProp(P_AMOUNT, 100);   // ab jetzt hat o 100 Einheiten.
-    o->move(npc, M_GET);         // ob mit 100 Einheiten wird bewegt
-    o->SetProp(U_REQ, 50);
-    o->move(anderernpc, M_GIVE); // 50 Einheiten werden bewegt, 50 verbleiben
-    (Technisch: das Objekt wird auf 50 Einheiten geaendert, bewegt und in der
-     alten Umgebung wird ein neues Objekt mit 50 Einheiten erzeugt.)
+=========
 
-    o->SetProp(U_REQ, 42);
-    o->remove(1);               // 42 Einheiten von den 50 werden zerstoert.
-    (Technisch: P_AMOUNT wird einfach um U_REQ reduziert.)
+   object o = clone_object("unitobjekt");
+   o->SetProp(P_AMOUNT, 100);   // ab jetzt hat o 100 Einheiten.
+   o->move(npc, M_GET);         // ob mit 100 Einheiten wird bewegt
+   o->SetProp(U_REQ, 50);
+   o->move(anderernpc, M_GIVE); // 50 Einheiten werden bewegt, 50 verbleiben
+   (Technisch: das Objekt wird auf 50 Einheiten geaendert, bewegt und in der
+    alten Umgebung wird ein neues Objekt mit 50 Einheiten erzeugt.)
 
-    # gib 18 muenzen an blupp
-    Hierbei wird ob->id("18 muenzen") gerufen, was U_REQ im Geldobjekt auf 18
-    setzt. Bei der Bewegung bekommt blupp daher das Objekt mit P_AMOUNT==18
-    und der Rest wird im Abgebenden neu erzeugt.
-    # gib geld an flubbel
-    Das U_REQ aus dem verherigen Kommando ist jetzt nicht mehr gueltig. Zwar
-    ist es das gleiche Kommandoverb, aber DINFO_EVAL_NUMBER ist jetzt
-    anders.
+   o->SetProp(U_REQ, 42);
+   o->remove(1);               // 42 Einheiten von den 50 werden zerstoert.
+   (Technisch: P_AMOUNT wird einfach um U_REQ reduziert.)
+
+   # gib 18 muenzen an blupp
+   Hierbei wird ob->id("18 muenzen") gerufen, was U_REQ im Geldobjekt auf 18
+   setzt. Bei der Bewegung bekommt blupp daher das Objekt mit P_AMOUNT==18
+   und der Rest wird im Abgebenden neu erzeugt.
+   # gib geld an flubbel
+   Das U_REQ aus dem verherigen Kommando ist jetzt nicht mehr gueltig. Zwar
+   ist es das gleiche Kommandoverb, aber DINFO_EVAL_NUMBER ist jetzt
+   anders.
 
 
-ZULETZT GEAeNDERT:
+ZULETZT GEAeNDERT
+=================
+
 16.01.2015, Zesstra
-
