diff --git a/doc/props/P_DISABLE_COMMANDS b/doc/props/P_DISABLE_COMMANDS
index f0318e0..e66910a 100644
--- a/doc/props/P_DISABLE_COMMANDS
+++ b/doc/props/P_DISABLE_COMMANDS
@@ -1,74 +1,100 @@
+
 P_DISABLE_COMMANDS
+******************
 
-NAME:
-     P_DISABLE_COMMANDS             "p_lib_disablecommands"
 
-DEFINIERT IN:
-     /sys/player/command.h
+NAME
+====
 
-BESCHREIBUNG:
-    Mit dieser Prop kann man verhindern, dass Kommandos eines Spielers
-    verarbeitet werden. Dies ist z.B. in Sequenzen nuetzlich, wo der Spieler
-    rein passiv konsumieren soll.
-    In diese Property muss ein Array mit 2 oder 3 Elementen geschrieben 
-    werden:
-       1) Endzeitpunkt in Sekunden seit 1.1.1970 (int)
-       2) Meldung (String oder Closure)
-       3) (optional) Array von trotzdem erlaubten Verben (string*)
-         (nur ausgewertet, wenn die Meldung ein String ist)
-    
-    Ist die Meldung ein String, wird dieser einfach bei jedem Kommando so wie
-    er ist an den Spieler ausgegeben und das Kommando abgebrochen.
-    Ist die Meldung eine Closure wird diese bei jedem Kommando aufgerufen und
-    das Kommando abgebrochen, wenn sie einen Rueckgabewert != 0 zurueckgibt.
-    In diesem Fall ist die gerufene Funktion dafuer verantwortlich, geeignete
-    Meldungen an den Spieler auszugeben!
-    Der Funktion wird der vom Spieler eingebene Befehl (string) als erstes
-    Argument uebergeben. Zu diesem Zeitpunkt wurde alle Aliase schon
-    ausgewertet. Die Funktion kann den Kommandogeber via this_player()
-    ermitteln.
-    Fuer weitere Informationen steht auch command_stack() zur Verfuegung,
-    allerdings ist dort die Alias-Ersetzung nicht beruecksichtigt.
+   P_DISABLE_COMMANDS             "p_lib_disablecommands"
 
-    Die Ausnahmeliste wird nur fuer simple Strings als Meldung ausgewertet,
-    wird eine Closure verwendet, kann diese besser selber die Ausnahmen
-    bestimmen.
-    
-    Fragt man diese Prop ab, erhaelt man ein Array mit 4 Elementen: setzendes
-    Objekt (object), Ablaufzeit (int), Meldung (String oder Closure) und
-    Liste von Ausnahmen (string*).
 
-BEMERKUNGEN:
-    1. Die Prop wird fuer Magier mit eingeschaltetem P_WANTS_TO_LEARN
-       ignoriert.
-    2. Wenn das Objekt zerstoert wird, was die Prop gesetzt hat, wird der
-       Eintrag unwirksam.
-    3. Wenn diese Prop gesetzt und nicht abgelaufen ist, kann nur das gleiche
-       Objekt sie mit neuen Daten ueberschreiben. Alle anderen Objekte koennen
-       die Prop nur loeschen. Dies soll verhindern, dass Magier unabsichtlich
-       einfach anderer Leute Eintraege ueberschreiben. Dementsprechend: Lasst
-       die Finger davon, wenn die schon gesetzt ist. ;-)
-    4. Diese Prop darf _ausschliesslich_ mit SetProp() und QueryProp() benutzt
-       werden, Set() und Query() funktionieren _nicht_.
-    5. Es gibt einige Verben, die NIE blockiert werden. Zur Zeit sind dies
-       "mrufe", "mschau", "bug", "idee", "typo" und "detail".
-    6. Bitte nicht missbrauchen, speziell nicht dazu, die Kommandos von
-       Spieler zu ueberwachen/mitzuschreiben. Das Setzen dieser Prop wird 
-       geloggt.
+DEFINIERT IN
+============
 
-BEISPIEL:
+   /sys/player/command.h
+
+
+BESCHREIBUNG
+============
+
+   Mit dieser Prop kann man verhindern, dass Kommandos eines Spielers
+   verarbeitet werden. Dies ist z.B. in Sequenzen nuetzlich, wo der Spieler
+   rein passiv konsumieren soll.
+   In diese Property muss ein Array mit 2 oder 3 Elementen geschrieben
+   werden:
+      1) Endzeitpunkt in Sekunden seit 1.1.1970 (int)
+      2) Meldung (String oder Closure)
+      3) (optional) Array von trotzdem erlaubten Verben (string*)
+        (nur ausgewertet, wenn die Meldung ein String ist)
+
+
+
+   Ist die Meldung ein String, wird dieser einfach bei jedem Kommando so wie
+   er ist an den Spieler ausgegeben und das Kommando abgebrochen.
+   Ist die Meldung eine Closure wird diese bei jedem Kommando aufgerufen und
+   das Kommando abgebrochen, wenn sie einen Rueckgabewert != 0 zurueckgibt.
+   In diesem Fall ist die gerufene Funktion dafuer verantwortlich, geeignete
+   Meldungen an den Spieler auszugeben!
+   Der Funktion wird der vom Spieler eingebene Befehl (string) als erstes
+   Argument uebergeben. Zu diesem Zeitpunkt wurde alle Aliase schon
+   ausgewertet. Die Funktion kann den Kommandogeber via this_player()
+   ermitteln.
+   Fuer weitere Informationen steht auch command_stack() zur Verfuegung,
+   allerdings ist dort die Alias-Ersetzung nicht beruecksichtigt.
+
+   Die Ausnahmeliste wird nur fuer simple Strings als Meldung ausgewertet,
+   wird eine Closure verwendet, kann diese besser selber die Ausnahmen
+   bestimmen.
+
+
+
+   Fragt man diese Prop ab, erhaelt man ein Array mit 4 Elementen: setzendes
+   Objekt (object), Ablaufzeit (int), Meldung (String oder Closure) und
+   Liste von Ausnahmen (string*).
+
+
+BEMERKUNGEN
+===========
+
+   1. Die Prop wird fuer Magier mit eingeschaltetem P_WANTS_TO_LEARN
+      ignoriert.
+   2. Wenn das Objekt zerstoert wird, was die Prop gesetzt hat, wird der
+      Eintrag unwirksam.
+   3. Wenn diese Prop gesetzt und nicht abgelaufen ist, kann nur das gleiche
+      Objekt sie mit neuen Daten ueberschreiben. Alle anderen Objekte koennen
+      die Prop nur loeschen. Dies soll verhindern, dass Magier unabsichtlich
+      einfach anderer Leute Eintraege ueberschreiben. Dementsprechend: Lasst
+      die Finger davon, wenn die schon gesetzt ist. ;-)
+   4. Diese Prop darf _ausschliesslich_ mit SetProp() und QueryProp() benutzt
+      werden, Set() und Query() funktionieren _nicht_.
+   5. Es gibt einige Verben, die NIE blockiert werden. Zur Zeit sind dies
+      "mrufe", "mschau", "bug", "idee", "typo" und "detail".
+   6. Bitte nicht missbrauchen, speziell nicht dazu, die Kommandos von
+      Spieler zu ueberwachen/mitzuschreiben. Das Setzen dieser Prop wird
+      geloggt.
+
+
+BEISPIEL
+========
+
    In einem Raum startet eine Sequenz, in der der Spieler nichts machen soll:
 
    if (!pl->QueryProp(P_DISABLE_COMMANDS))
       pl->SetProp(P_DISABLE_COMMANDS,
             ({ time() + 120, "Du bist tief in Deinem Traum gefangen!\n" }) );
    else // ... Fehlerbehandlung, falls Prop schon gesetzt ...
-   
+
+
+
    Soll die Prop aus irgendeinem Grund (vorzeitig) geloescht werden:
    pl->SetProp(P_DISABLE_COMMANDS, 0);
 
-SIEHE AUCH:
-     command(), query_command(), command_stack(), modify_command(), 
-     this_player()
+
+SIEHE AUCH
+==========
+
+   command(), query_command(), command_stack(), modify_command(),
+   this_player()
 
 01.12.2012, Zesstra
