diff --git a/doc/props/P_PLURAL b/doc/props/P_PLURAL
index 0a5e3a5..eed829f 100644
--- a/doc/props/P_PLURAL
+++ b/doc/props/P_PLURAL
@@ -1,39 +1,58 @@
-NAME:
-    P_PLURAL                      "plural"
 
-DEFINIERT IN:
-    /sys/thing/language.h
+P_PLURAL
+********
 
-BESCHREIBUNG:
-    Mit Hilfe von P_PLURAL koennen auch nicht Unit Objekte als Pluralobjekte
-    markiert werden. Bei einem Wert > 1 wird der Wert ausserdem auch noch in
-    den Namen eingefuegt. Sollte man in eigenem Code zulassen wollen, das
-    etwas mit bestimmten Objekten geschieht, dann sollte man die Verben
-    entsprechen konjugieren.
 
-BEMERKUNGEN:
-    Wirkt nicht auf Todesmeldungen -> siehe dafuer P_KILL_MSG
+NAME
+====
 
-BEISPIELE:
-    SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 2);
-    name(WER, 1) -> "die zwei Stiefel"
+   P_PLURAL                      "plural"
 
-    SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 1);
-    name(WER, 1) -> "die Stiefel"
 
-    // Ein Beispiel fuer das konjugieren von Verben
-    static int cmd_opfer(string str)
-    {
-       int i;
-       object *obs;
-       notify_fail("Was moechtest Du opfern?\n");
-       if (!str || !sizeof(obs=PL->find_obs(str))) return 0;
-       for (i=sizeof(obs)-1; i>=0; i--)
-          if (obs[i]->QueryProp(P_VALUE)<=0)
-            write(obs[i]->Name(WER)+" "
-                 +(ob->QueryProp(P_PLURAL) ? "sind" : "ist")
-                 +" doch gar nichts wert.\n");
-          else obs[i]->remove();
-    }
+DEFINIERT IN
+============
+
+   /sys/thing/language.h
+
+
+BESCHREIBUNG
+============
+
+   Mit Hilfe von P_PLURAL koennen auch nicht Unit Objekte als Pluralobjekte
+   markiert werden. Bei einem Wert > 1 wird der Wert ausserdem auch noch in
+   den Namen eingefuegt. Sollte man in eigenem Code zulassen wollen, das
+   etwas mit bestimmten Objekten geschieht, dann sollte man die Verben
+   entsprechen konjugieren.
+
+
+BEMERKUNGEN
+===========
+
+   Wirkt nicht auf Todesmeldungen -> siehe dafuer P_KILL_MSG
+
+
+BEISPIELE
+=========
+
+   SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 2);
+   name(WER, 1) -> "die zwei Stiefel"
+
+   SetProp(P_NAME, "Stiefel"); SetProp(P_PLURAL, 1);
+   name(WER, 1) -> "die Stiefel"
+
+   // Ein Beispiel fuer das konjugieren von Verben
+   static int cmd_opfer(string str)
+   {
+      int i;
+      object *obs;
+      notify_fail("Was moechtest Du opfern?\n");
+      if (!str || !sizeof(obs=PL->find_obs(str))) return 0;
+      for (i=sizeof(obs)-1; i>=0; i--)
+         if (obs[i]->QueryProp(P_VALUE)<=0)
+           write(obs[i]->Name(WER)+" "
+                +(ob->QueryProp(P_PLURAL) ? "sind" : "ist")
+                +" doch gar nichts wert.\n");
+         else obs[i]->remove();
+   }
 
 26. Juni 2004 Gloinson
