diff --git a/doc/props/P_GUARD b/doc/props/P_GUARD
index ebeb989..7128df6 100644
--- a/doc/props/P_GUARD
+++ b/doc/props/P_GUARD
@@ -1,50 +1,70 @@
+
 P_GUARD
-NAME:
-     P_GUARD				"guard"
-
-DEFINIERT IN:
-     /sys/guard.h
-
-BESCHREIBUNG:
-     Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf
-     oder nicht. Abgefragt werden muss dies von den Items oder Spells, die
-     den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch
-     darauf geachtet!
-
-     Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger)
-     Zahlenwert zwischen 0 und 100, der hierbei den Grad der
-     'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen
-     immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen
-     gibt es die Wahrscheinlichkeit dafuer an.
-
-BEMERKUNGEN:
-     - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD
-       auf 100 gesetzt, sind also nicht fortfuehrbar
-     - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem
-       Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset
-       gegebenenfalls an ihren Ausgangsort zurueckkehren. 
-     - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden-
-       magiern erfragen
-
-BEISPIELE:
-     // ein Test
-     if(random(100)<=liv->QueryProp(P_GUARD))
-      cannotMoveNPC(); // NPC darf nicht bewegt werden!
-     else
-      moveNPC();       // NPC darf bewegt werden
-
-     // ein wegfuehrbarer NPC
-     void create() {
-      ::create();
-      ...
-      SetProp(P_GUARD,50);
-      ...
-     }
-     // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun
-     // fortfuehren
+*******
 
 
-SIEHE AUCH:
-     AddItem()
+NAME
+====
+
+   P_GUARD                            "guard"
+
+
+DEFINIERT IN
+============
+
+   /sys/guard.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property gibt an, ob ein NPC aus einem Raum entfernt werden darf
+   oder nicht. Abgefragt werden muss dies von den Items oder Spells, die
+   den NPC zu einer Bewegung zwingen wollen. Es wird nicht automatisch
+   darauf geachtet!
+
+   Entscheidend hierbei ist ein in der Property enthaltene (ganzzahliger)
+   Zahlenwert zwischen 0 und 100, der hierbei den Grad der
+   'Bewachungsstaerke' eines NPCs angibt. Bei 0 laesst sich das Lebewesen
+   immer zu einer Bewegung ueberreden, bei 100 ueberhaupt nicht. Dazwischen
+   gibt es die Wahrscheinlichkeit dafuer an.
+
+
+BEMERKUNGEN
+===========
+
+   - alle von /std/npc abgeleiteten NPCs haben standardmaessig P_GUARD
+     auf 100 gesetzt, sind also nicht fortfuehrbar
+   - bei der Erzeugung von NPCs mit P_GUARD < 100 AddItem() mit dem
+     Parameter REFRESH_MOVE_HOME verwenden, damit sie bei einem Raumreset
+     gegebenenfalls an ihren Ausgangsort zurueckkehren.
+   - gildenspezifische weitere Abfragen auf Level oAe bitte bei Gilden-
+     magiern erfragen
+
+
+BEISPIELE
+=========
+
+   // ein Test
+   if(random(100)<=liv->QueryProp(P_GUARD))
+    cannotMoveNPC(); // NPC darf nicht bewegt werden!
+   else
+    moveNPC();       // NPC darf bewegt werden
+
+   // ein wegfuehrbarer NPC
+   void create() {
+    ::create();
+    ...
+    SetProp(P_GUARD,50);
+    ...
+   }
+   // mit 50% Wahrscheinlichkeit (pro Versuch) laesst sich der NPC nun
+   // fortfuehren
+
+
+SIEHE AUCH
+==========
+
+   AddItem()
 
 13.April 2004 Gloinson
