diff --git a/doc/props/P_AERIAL_HELPERS b/doc/props/P_AERIAL_HELPERS
index 781510c..7fbe8d0 100644
--- a/doc/props/P_AERIAL_HELPERS
+++ b/doc/props/P_AERIAL_HELPERS
@@ -18,32 +18,32 @@
 BESCHREIBUNG
 ============
 
-   Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
-   zu ermitteln, die fuer die Unterstuetzung beim Fliegen/Segeln bei diesem
-   Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
-   Form zurueckgeliefert:
-   ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
-   Eine Erlaeuterung dazu findet sich in der Dokumentation zu
-   RegisterHelperObject().
+   Diese Property kann in allen Lebewesen abgefragt werden, um die
+   Objekte zu ermitteln, die sich fuer die Unterstuetzung beim
+   Fliegen/Segeln bei diesem Lebewesen registriert haben. Die Daten
+   werden als Mapping der folgenden Form zurueckgeliefert: ([ Objekt :
+   Rueckgabewert von dessen Callback-Methode ]) Eine Erlaeuterung dazu
+   findet sich in der Dokumentation zu *RegisterHelperObject()*.
 
 
 BEMERKUNGEN
 ===========
 
-   Diese Property kann nur abgefragt werden.
-   Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche
-   Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
+   Diese Property kann nur abgefragt werden. Es ist erwuenscht, dass
+   entsprechende, neu geschaffene Stellen jegliche Helfer akzeptieren,
+   deren Callback-Methode >0 zurueckgibt.
 
 
 BEISPIEL
 ========
 
-   Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das
-   beim Fliegen hilft, sucht man alle Objekte aus dem Mapping heraus, die
-   einen Wert >0 eingetragen haben und prueft deren Anzahl:
+   Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat,
+   das beim Fliegen hilft, sucht man alle Objekte aus dem Mapping
+   heraus, die einen Wert >0 eingetragen haben und prueft deren
+   Anzahl:
 
    mapping aerial = this_player()->QueryProp(P_AERIAL_HELPERS);
-   object* helpers = filter( aerial, function int (object h) {
+   object* helpers = filter( m_indices(aerial), function int (object h) {
                        return (aerial[h]>0); });
    if ( sizeof(helpers) ) {
      tell_object(this_player(), "Du erhebst Dich mit Hilfe "+
@@ -57,7 +57,7 @@
 SIEHE AUCH
 ==========
 
-   Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
-   Properties:  P_HELPER_OBJECTS, P_AQUATIC_HELPERS
+   Methoden:    *RegisterHelperObject()*, *UnregisterHelperObject()*
+   Properties:  *P_HELPER_OBJECTS*, *P_AQUATIC_HELPERS*
 
-12.03.2016, Arathorn
+04.02.2018, Arathorn
diff --git a/doc/props/P_AQUATIC_HELPERS b/doc/props/P_AQUATIC_HELPERS
index 8429a41..ef80e67 100644
--- a/doc/props/P_AQUATIC_HELPERS
+++ b/doc/props/P_AQUATIC_HELPERS
@@ -18,32 +18,32 @@
 BESCHREIBUNG
 ============
 
-   Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
-   zu ermitteln, die fuer die Unterstuetzung beim Tauchen bei diesem
-   Lebewesen registriert haben. Die Daten werden als Mapping der folgenden
-   Form zurueckgeliefert:
-   ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
-   Eine Erlaeuterung dazu findet sich in der Dokumentation zu
-   RegisterHelperObject().
+   Diese Property kann in allen Lebewesen abgefragt werden, um die
+   Objekte zu ermitteln, die fuer die Unterstuetzung beim Tauchen bei
+   diesem Lebewesen registriert haben. Die Daten werden als Mapping
+   der folgenden Form zurueckgeliefert: ([ Objekt : Rueckgabewert von
+   dessen Callback-Methode ]) Eine Erlaeuterung dazu findet sich in
+   der Dokumentation zu *RegisterHelperObject()*.
 
 
 BEMERKUNGEN
 ===========
 
-   Diese Property kann nur abgefragt werden.
-   Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche
-   Helfer akzeptieren, deren Callback-Methode >0 zurueckgibt.
+   Diese Property kann nur abgefragt werden. Es ist erwuenscht, dass
+   entsprechende, neu geschaffene Stellen jegliche Helfer akzeptieren,
+   deren Callback-Methode >0 zurueckgibt.
 
 
 BEISPIEL
 ========
 
-   Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat, das
-   beim Tauchen hilft, sucht man alle Objekte aus dem Mapping heraus, die
-   einen Wert >0 eingetragen haben und prueft deren Anzahl:
+   Um zu ermitteln, ob der Spieler mindestens ein Objekt bei sich hat,
+   das beim Tauchen hilft, sucht man alle Objekte aus dem Mapping
+   heraus, die einen Wert >0 eingetragen haben und prueft deren
+   Anzahl:
 
    mapping aquatic = this_player()->QueryProp(P_AQUATIC_HELPERS);
-   object* helpers = filter( aquatic, function int (object h) {
+   object* helpers = filter( m_indices(aquatic), function int (object h) {
                        return (aquatic[h]>0); });
    if ( sizeof(helpers) ) {
      tell_object(this_player(), "Du stuerzt Dich in die Fluten und "
@@ -58,7 +58,7 @@
 SIEHE AUCH
 ==========
 
-   Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
-   Properties:  P_HELPER_OBJECTS, P_AERIAL_HELPERS
+   Methoden:    *RegisterHelperObject()*, *UnregisterHelperObject()*
+   Properties:  *P_HELPER_OBJECTS*, *P_AERIAL_HELPERS*
 
-06.04.2016, Arathorn
+04.02.2018, Arathorn
diff --git a/doc/props/P_EXTRA_LOOK_OBS b/doc/props/P_EXTRA_LOOK_OBS
new file mode 100644
index 0000000..b1a5e4e
--- /dev/null
+++ b/doc/props/P_EXTRA_LOOK_OBS
@@ -0,0 +1,36 @@
+
+P_EXTRA_LOOK_OBS
+****************
+
+
+NAME
+====
+
+   P_EXTRA_LOOK_OBS                "p_lib_extralook_obs"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+   Array mit den im Lebewesen enthaltenen Objekten, die P_EXTRA_LOOK gesetzt
+   haben.
+
+
+BEMERKUNG
+=========
+
+   Bitte nicht von Hand manipulieren.
+
+
+SIEHE AUCH
+==========
+
+   :doc:`../long`, :doc:`../AddExtraLook`, :doc:`../RemoveExtraLook`
+   :doc:`P_EXTRA_LOOK`
+   /std/living/description.c, /std/player/base.c
diff --git a/doc/props/P_FUNC_MSG b/doc/props/P_FUNC_MSG
index adcca1a..ac09232 100644
--- a/doc/props/P_FUNC_MSG
+++ b/doc/props/P_FUNC_MSG
@@ -33,8 +33,13 @@
 SIEHE AUCH
 ==========
 
-   LFuns:    AddRoomMessage()
-   Verwandt: tell_room(), ReceiveMsg()
-   Props:    P_ROOM_MSG, P_MSG_PROB
+   LFuns:
+      *AddRoomMessage()*
+
+   Verwandt:
+      tell_room(), *send_room()*, *ReceiveMsg()*
+
+   Props:
+      *P_MSG_PROB*, *P_ROOM_MSG*
 
 2.Feb 2016 Gloinson
diff --git a/doc/props/P_HARBOUR b/doc/props/P_HARBOUR
index f049847..c7cf082 100644
--- a/doc/props/P_HARBOUR
+++ b/doc/props/P_HARBOUR
@@ -24,71 +24,75 @@
 BEMERKUNGEN
 ===========
 
-   Diese Property wird in Raeumen gesetzt, die als Anleger fuer Transporter
-   dienen sollen. Sie enthaelt ein Array aus zwei Elementen, einem String
-   und einem String-Array, zum Beispiel:
+   Diese Property wird in Raeumen gesetzt, die als Anleger fuer
+   Transporter dienen sollen. Sie enthaelt ein Array aus zwei
+   Elementen, einem String und einem String-Array, zum Beispiel:
 
-   ({ "zur Sonneninsel", ({"sonneninsel"}) }) oder
-   ({ "nach Titiwu", ({"titiwu"}) })
+   ({ "zur Sonneninsel", ({"sonneninsel"}) }) oder ({ "nach Titiwu",
+   ({"titiwu"}) })
 
-   Damit bekommt der Spieler bei einer Abfrage seiner Reiseroute mittels
-   "reise route" eine Ausgabe wie
-     'Du reist mit dem Floss nach Titiwu' oder
-     'Du reist mit dem Wal zur Sonneninsel'.
+   Hafen der Sonneninsel: ({ "zur Sonneninsel", ({"sonneninsel"}) })
+   oder Hafen von Titiwu:      ({ "nach Titiwu", ({"titiwu"}) })
 
-   Das zweite Element der Property enthaelt eine Liste der IDs, mit denen
-   sich der Hafen mit dem Befehl "reise nach <ID>" ansprechen laesst. Im
-   Beispiel oben wuerde also "reise nach sonneninsel" und
-   "reise nach titiwu" akzeptiert werden. Der erste Eintrag in dieser ID-
-   Liste wird in der Ausgabe des Befehls "reise route" verwendet, sollte
-   also den Anlegeort korrekt bezeichnen und nicht z.B. eine Abkuerzung
-   enthalten.
-   Es bietet sich an, bei bestimmten, deklinierbaren Bezeichnungen alle
-   Varianten einzutragen, z.B. "verlorenes land" und zusaetzlich
-   "verlorene land" und "verlorenen land", damit alle Varianten von
-   "reise nach ..." funktionieren.
+   Damit bekommt der Spieler bei einer Abfrage seiner Reiseroute
+   mittels "reise route", sofern er schon eine gesetzt hat, eine
+   Ausgabe wie ..
+
+      'Du reist mit dem Floss nach Titiwu' oder 'Du reist mit dem Wal
+      zur Sonneninsel'.
+
+   Das zweite Element der Property enthaelt eine Liste der IDs, mit
+   denen sich der Hafen mit dem Befehl "reise nach <ID>" ansprechen
+   laesst. Im Beispiel oben wuerde also "reise nach sonneninsel" und
+   "reise nach titiwu" akzeptiert werden. Der erste Eintrag in dieser
+   ID- Liste wird in der Ausgabe des Befehls "reise route" verwendet,
+   sollte also den Anlegeort korrekt bezeichnen und nicht z.B. eine
+   Abkuerzung enthalten. Es bietet sich an, bei bestimmten,
+   deklinierbaren Bezeichnungen alle Varianten einzutragen, z.B.
+   "verlorenes land" und zusaetzlich "verlorene land" und "verlorenen
+   land", damit alle Varianten von "reise nach ..." funktionieren.
 
    Ist in einem Hafen diese Property nicht gesetzt, so bekommt der
    Spieler keinerlei Hinweis darauf, wohin ihn ein bestimmter Trans-
-   porter befoerdert.
-   Stattdessen erhaelt er die Bezeichnung 'unbekannt'.
+   porter befoerdert. Stattdessen erhaelt er die Bezeichnung
+   'unbekannt'.
 
 
 HINWEISE
 ========
 
    Wird der zweite Parameter in dieser Property, d.h. die Liste der
-   Anleger-IDs, nicht korrekt gesetzt, kann das dazu fuehren, dass Spieler
-   den hier anlegenden Transporter nicht benutzen koennen, weil es
-   keine sinnvolle Syntax gibt, um den gewuenschten Zielhafen zu finden.
+   Anleger-IDs, nicht korrekt gesetzt, kann das dazu fuehren, dass
+   Spieler den hier anlegenden Transporter nicht benutzen koennen,
+   weil es keine sinnvolle Syntax gibt, um den gewuenschten Zielhafen
+   zu finden.
 
-   Zu achten ist auch darauf, das der erste Eintrag unveraendert in einer
-   Meldung an den Spieler ausgegeben wird, d.h. Gross-und Kleinschreibung
-   sollte korrekt sein.
+   Zu achten ist auch darauf, das der erste Eintrag unveraendert in
+   einer Meldung an den Spieler ausgegeben wird, d.h. Gross-und
+   Kleinschreibung sollte korrekt sein.
 
 
 HISTORIE
 ========
 
-   Frueher war der zweite Eintrag in dieser Property ein einzelner String.
-   Es existiert eine SetMethode auf dieser Property, die solche Daten in
-   altem Code auf die neue Datenstruktur umbiegt. Dies fuehrt dazu, dass
-   bei solchen Objekten die im geladenen Raum enthaltenen Daten nicht mit
-   den Daten im File uebereinstimmen. Dies moege aber bitte niemand
-   zum Anlass nehmen, in neuem Code veraltete Daten in die Property zu
-   schreiben!
+   Frueher war der zweite Eintrag in dieser Property ein einzelner
+   String. Es existiert eine SetMethode auf dieser Property, die
+   solche Daten in altem Code auf die neue Datenstruktur umbiegt. Dies
+   fuehrt dazu, dass bei solchen Objekten die im geladenen Raum
+   enthaltenen Daten nicht mit den Daten im File uebereinstimmen. Dies
+   moege aber bitte niemand zum Anlass nehmen, in neuem Code veraltete
+   Daten in die Property zu schreiben!
 
 
 SIEHE AUCH
 ==========
 
-   Properties:     P_NO_TRAVELING, P_TRAVEL_INFO
-   Funktionen:     AddRoute(L)
-   Spielerbefehle: reise
-   weitere Doku:   /d/inseln/schiffe/HowTo
+   Properties:     *P_NO_TRAVELING*, *P_TRAVEL_INFO* Funktionen:
+   *AddRoute()* Spielerbefehle: reise weitere Doku:
+   /d/inseln/schiffe/HowTo
 
 
 LETZTE AENDERUNG
 ================
 
-2015-Jan-18, Arathorn
+04.02.2018, Arathorn
diff --git a/doc/props/P_INFO b/doc/props/P_INFO
index f29c242..214301a 100644
--- a/doc/props/P_INFO
+++ b/doc/props/P_INFO
@@ -25,12 +25,30 @@
 BEISPIEL
 ========
 
-   SetProp(P_INFO,"Du ergruendest das Geheimnis.\n")
+   // Einfaches Beispiel
+   SetProp(P_INFO, "Du ergruendest das Geheimnis.\n")
+
+   // dynamisch
+   protected string my_info();
+
+   void create() {
+     if(clonep(this_object())) return;
+     ::create();
+
+     Set(P_INFO, #'my_info, F_QUERY_METHOD);
+     // [...]
+   }
+
+   protected string my_info() {
+     return(break_string(
+       "Die "+cnt+" Steine tragen ein geheimes Muster in sich.", 78));
+   }
 
 
 SIEHE AUCH
 ==========
 
-   GetOwner(L)
+   Aehnlich:
+      *GetOwner()*
 
-24. April 2006, Vanion
+14. Mar 2017 Gloinson
diff --git a/doc/props/P_INTERNAL_EXTRA_LOOK b/doc/props/P_INTERNAL_EXTRA_LOOK
index ffa78ad..d61da7a 100644
--- a/doc/props/P_INTERNAL_EXTRA_LOOK
+++ b/doc/props/P_INTERNAL_EXTRA_LOOK
@@ -6,7 +6,8 @@
 NAME
 ====
 
-   P_INTERNAL_EXTRA_LOOK                   "internal_extralook"
+   P_INTERNAL_EXTRA_LOOK
+      "internal_extralook"
 
 
 DEFINIERT IN
@@ -18,40 +19,59 @@
 BESCHREIBUNG
 ============
 
-         Diese Property enthaelt ein Mapping, in dem alle einzelnen
-   Extra-Look-Eintraege des Livings enthalten sind. Dabei weden die Daten von
-   AddExtraLook() und RemoveExtraLook() verwaltet. Fragt man diese Prop mit
-   QueryProp() ab, erhaelt man die Ausgabe der gueltigen Extralooks des
-   Livings. Bei Abfrage per Query() erhaelt man ein Mapping mit allen
-   Eintraegen und deren Daten. Jeder Wert im Mapping ist erneut ein Mapping,
-   welches folgende Keys enthalten kann:
-   - "xllook": String, der im Extralook des Living angezeigt wird.
-   - "xlduration": Zeitstempel (int), der angibt, wie lang der Eintrag gueltig
-                   ist. 0 == "Unendlich", negative Zahlen besagen, dass der
-                   Eintrag nur bis Reboot/Ende gueltig sein und abs(xlduration)
-                   ist der Zeitpunkt des Eintrages dieses Extralooks.
-   - "xlende": String, der nach Ablaufen an das Living ausgegeben wird.
-   - "xlfun": Funktion, die gerufen wird und den String zurueckliefern muss,
-              der ausgeben werden soll.
-   - "xlendefun": Funktion, die gerufen wird, wenn der Eintrag abgelaufen ist
-                  und den String zurueckliefern muss, der dann ans Living
-                  ausgeben wird.
-   - "xlobjectname": Objekt, in dem die o.a. Funktionen gerufen werden.
+   Diese Property enthaelt ein Mapping, in dem alle einzelnen Extra-
+   Look-Eintraege des Livings enthalten sind. Dabei weden die Daten
+   von AddExtraLook() und RemoveExtraLook() verwaltet. Fragt man diese
+   Prop mit QueryProp() ab, erhaelt man die Ausgabe der gueltigen
+   Extralooks des Livings. Bei Abfrage per Query() erhaelt man ein
+   Mapping mit allen Eintraegen und deren Daten.
+
+   Der Key ist jeweils die ID des Extralooks, der Value ist erneut ein
+   Mapping, welches folgende Keys enthalten kann:
+
+   * "xllook": String, der im Extralook des Living angezeigt wird.
+
+   * "xlduration": Zeitstempel (int), der angibt, wie lang der
+     Eintrag gueltig ist.
+
+     * 0  ewig gueltig
+
+     * <0 gueltig bis Ende/Reboot
+
+     * >0 Gueltig in Sekunden
+
+   * "xlende": String, der nach Ablaufen an das Living ausgegeben
+     wird.
+
+   * "xlfun": Funktion, die gerufen wird und den String
+     zurueckliefern muss, der ausgegeben werden soll.
+
+   * "xlendefun": Funktion, die gerufen wird, wenn der Eintrag
+     abgelaufen ist und den String zurueckliefern muss, der dann ans
+     Living ausgegeben wird.
+
+   * "xlobjectname": Objekt, in dem die o.a. Funktionen gerufen
+     werden.
 
 
-BEMERKUNG
-=========
+BEMERKUNGEN:
+============
 
-   DIESE PROPERTY BITTE NIEMALS PER HAND MIT Set()/SetProp() AENDERN!
-   Die Daten in dieser Prop werden vom Living selber verwaltet. Extralooks
-   koennen mittel AddExtraLook() eingetragen und mit RemoveExtraLook() entfernt
-   werden.
+   Warnung: Keine echte Property. Die Methode
+     _query_internal_extralook() in /std/living/description.c stellt
+     die Daten zusammen.
+
+   Warnung: ACHTUNG: Bitte nur die bereitgestellten Methoden zur
+     Manipulation benutzen! Setzen als Property hat keinen Effekt.
 
 
 SIEHE AUCH
 ==========
 
-   long(), /std/living/description.c, /std/player/base.c
-   AddExtraLook(), RemoveExtraLook()
+   Verwandt:
+      *AddExtraLook()*, *RemoveExtraLook()* *long()*
 
-13.05.2007, Zesstra
+   Fuer Spielerobjekte:
+      *P_EXTRA_LOOK*
+
+15. Juni 2017 Gloinson
diff --git a/doc/props/P_INT_SHORT b/doc/props/P_INT_SHORT
index 618bbab..ac3c31d 100644
--- a/doc/props/P_INT_SHORT
+++ b/doc/props/P_INT_SHORT
@@ -22,10 +22,13 @@
    als String oder Closure (mit String-Rueckgabewert).
 
    Container sind hierbei z.B. Raeume.
-   ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
-            Satzzeichen noch mit einem "\n" abgeschlossen sein
+   ACHTUNG: Die Kurzbeschreibung sollte dabei nicht  mit einem
+            "\n" abgeschlossen sein
             (dies wird von den zustaendigen Funktionen erledigt).
 
+   Aus historischen Gruenden wird ein Punkt ergaenzt, wenn das letzte
+   Zeichen kein Punkt, Ausrufezeichen oder Fragezeichen ist.
+
    Man sollte die Property nicht auf 0 setzen.
 
    Diese Property bestimmt die Ansicht des Containers von innen.
diff --git a/doc/props/P_MSG_PROB b/doc/props/P_MSG_PROB
index b4465df..216d8e0 100644
--- a/doc/props/P_MSG_PROB
+++ b/doc/props/P_MSG_PROB
@@ -18,18 +18,65 @@
 BESCHREIBUNG
 ============
 
-   Parameter fuer die Wartezeit in Sekunden bis zur naechsten Ausgabe
-   einer Raumnachricht.
-   Wird in AddRoomMessage() explizit mitgesetzt. Koennte natuerlich von
-   einer Nachrichtenmethode auch regelmaessig geaendert werden, um
-   mehr Zufall in die Intervalle zu bringen.
+   Der Name ist irrefuehrend: es ist ein Parameter fuer die Wartezeit
+   in Sekunden bis zur naechsten Ausgabe einer Raumnachricht. Nur
+   direkt nach dem Betreten des Raums wird ein Zufallswert dieser Zahl
+   erstellt.
+
+   Wird in AddRoomMessage() explizit mitgesetzt und gilt fuer den
+   Raum.
+
+   Kann von einer Nachrichtenmethode geaendert werden, um mehr Zufall
+   in die Intervalle zu bringen.
+
+   Werte kleiner als 15 werden bei der Auswertung auf 15 gesetzt.
+   Setzen auf 0 schaltet die Nachrichten nicht ab!
+
+
+BEISPIELE
+=========
+
+   // Beispiel:
+   // Je laenger Spieler im Raum sind, desto langsamer tropft das
+   // Wasser. Wenn der letzte den Raum verlaesst, wird die Zeit
+   // fuer den naechsten Spieler wieder auf den Initialwert gesetzt.
+
+   inherit "/std/room";
+
+   #define START_SPEED 30
+
+   void create() {
+     ::create();
+     AddRoomMessage(({"Das Wasser tropft.\n",
+                      "Ein Tropfen plitscht.\n",
+                      "Tripf tropf macht das Wasser.\n"}),
+                    START_SPEED,
+                    ({"slowdown_speed"}));
+   }
+
+   void slowdown_speed(int msg) {
+     SetProp(P_MSG_PROB, QueryProp(P_MSG_PROB)+10);
+   }
+
+   void exit() {
+     ::exit();
+
+     if(!sizeof(filter(all_inventory(this_object())-({this_player()}),
+                       #'interactive)))
+       SetProp(P_MSG_PROB, START_SPEED);
+   }
 
 
 SIEHE AUCH
 ==========
 
-   LFuns:    AddRoomMessage()
-   Props:    P_ROOM_MSG, P_MSG_PROB
-   Verwandt: call_out()
+   LFuns:
+      *AddRoomMessage()*
 
-2.Feb 2016 Gloinson
+   Props:
+      *P_ROOM_MSG*, *P_FUNC_MSG*
+
+   Verwandt:
+      call_out()
+
+28. Mar 2017 Gloinson
diff --git a/doc/props/P_PURSUERS b/doc/props/P_PURSUERS
index 05ead3b..8348a6a 100644
--- a/doc/props/P_PURSUERS
+++ b/doc/props/P_PURSUERS
@@ -6,7 +6,8 @@
 NAME
 ====
 
-   P_PURSUERS                    "pursuers"
+   P_PURSUERS:
+      "pursuers"
 
 
 DEFINIERT IN
@@ -18,12 +19,20 @@
 BESCHREIBUNG
 ============
 
-   Enthaelt Verfolger - nicht von Hand manipulieren!
+   Enthaelt ein zweielementiges Array mit folgendem Aufbau: 0: Objekt
+   welches verfolg wird oder 0. 1: Array der Objekte welche verfolgen.
+
+
+BEMERKUNG
+=========
+
+   Kann auch 0 sein, also auf pointerp() pruefen.
+
+   NICHT von Hand, sondern nur mit den dafuer gedachten Funktionen
+   modifizieren.
 
 
 SIEHE AUCH
 ==========
 
-   AddPursuer(L), RemovePursuer(L)
-
-16.06.2016, Arathorn
+   * *AddPursuer()*, *RemovePursuer()*
diff --git a/doc/props/P_ROOM_MSG b/doc/props/P_ROOM_MSG
index 3486458..2d52e57 100644
--- a/doc/props/P_ROOM_MSG
+++ b/doc/props/P_ROOM_MSG
@@ -32,8 +32,13 @@
 SIEHE AUCH
 ==========
 
-   LFuns:    AddRoomMessage()
-   Verwandt: tell_room(), ReceiveMsg()
-   Props:    P_FUNC_MSG, P_MSG_PROB
+   LFuns:
+      *AddRoomMessage()*
+
+   Verwandt:
+      tell_room(), *send_room()*, *ReceiveMsg()*
+
+   Props:
+      *P_MSG_PROB*, *P_FUNC_MSG*
 
 2.Feb 2016 Gloinson
diff --git a/doc/props/P_SHORT b/doc/props/P_SHORT
index 49b2603..63c8765 100644
--- a/doc/props/P_SHORT
+++ b/doc/props/P_SHORT
@@ -21,9 +21,11 @@
    Diese Property enthaelt die Kurzbeschreibung des Objektes als String
    oder Closure (diese muss einen String zurueckgeben).
 
-   ACHTUNG: Die Kurzbeschreibung sollte dabei weder mit einem
-            Satzzeichen noch mit einem "\n" abgeschlossen sein
-            (dies wird von den zustaendigen Funktionen erledigt).
+   ACHTUNG: Die Kurzbeschreibung sollte dabei nicht mit einem "\n"
+   abgeschlossen sein (dies wird von den zustaendigen Funktionen
+   erledigt).
+   Aus historischen Gruenden wird ein Punkt ergaenzt, wenn das letzte
+   Zeichen kein Punkt, Ausrufezeichen oder Fragezeichen ist.
 
    Setzt man diese Property auf 0, so ist das Objekt unsichtbar, allerdings
    ansprechbar, wenn der Spieler eine ID des Objektes kennt. D.h. Objekte
diff --git a/doc/props/P_SYNTAX_HELP b/doc/props/P_SYNTAX_HELP
index a796fb5..fee400f 100644
--- a/doc/props/P_SYNTAX_HELP
+++ b/doc/props/P_SYNTAX_HELP
@@ -6,7 +6,8 @@
 NAME
 ====
 
-   P_SYNTAX_HELP              "lib_p_syntax_help"
+   P_SYNTAX_HELP
+      "lib_p_syntax_help"
 
 
 DEFINIERT IN
@@ -18,34 +19,35 @@
 BESCHREIBUNG
 ============
 
-   In dieser Property kann man fuer Spieler eine ausfuehrliche Syntaxhilfe zu
-   den Kommandos eines Objektes ablegen. Diese wird angezeigt, wenn der
-   Spieler das Kommando "synxtaxhilfe <objekt>" eingibt.
-   Die Property kann verschiedene Datenstrukturen enthalten:
+   In dieser Property kann man fuer Spieler eine ausfuehrliche
+   Syntaxhilfe zu den Kommandos eines Objektes ablegen. Diese wird
+   angezeigt, wenn der Spieler das Kommando "syntaxhilfe <objekt>"
+   eingibt. Die Property kann verschiedene Datenstrukturen enthalten:
 
-   1) ein String
-   Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
-   Zeilenumbrueche werden beibehalten.
+   1) ein String Der String wird angezeigt, hierbei ggf. umgebrochen,
+   vorhandene Zeilenumbrueche werden beibehalten.
 
-   2) ein Array: ({hilfetext, bedingungen})
+   2. ein Array: ({hilfetext, bedingungen})
 
    <hilfetext>:
-     * ein string:
-       Der String wird angezeigt, hierbei ggf. umgebrochen, vorhandene
-       Zeilenumbrueche werden beibehalten.
-     * eine lfun-closure:
-       Diese erhaelt beim Aufruf das betreffende Objekt als Argument.
-       Wenn diese dann einen String zurueckliefert, wird dieser dem Spieler
-       angezeigt. Hierbei wird ggf. umgebrochen, vorhandene Zeilenumbrueche
-       werden beibehalten.
+      * ein string: Der String wird angezeigt, hierbei ggf.
+        umgebrochen, vorhandene Zeilenumbrueche werden beibehalten.
 
-   <bedingungen>, welche erfuellt sein muessen, damit dem Spieler die Hilfe
-   angezeigt wird. Die Bedingungen sind entweder:
-     * ein Mapping fuer check_restriction()
-     * eine lfun-closure
-       Diese erhaelt beim Aufruf das betreffende Objekt als Argument und darf
-       eine 0 fuer 'erlaubt', 1 fuer 'nicht erlaubt (mit Standardtext)' oder
-       einen string fuer 'nicht erlaubt mit individuellem Text' sein.
+      * eine lfun-closure: Diese erhaelt beim Aufruf das betreffende
+        Objekt als Argument. Wenn diese dann einen String
+        zurueckliefert, wird dieser dem Spieler angezeigt. Hierbei
+        wird ggf. umgebrochen, vorhandene Zeilenumbrueche werden
+        beibehalten.
+
+   <bedingungen>, welche erfuellt sein muessen, damit dem Spieler die
+   Hilfe angezeigt wird. Die Bedingungen sind entweder:
+
+      * ein Mapping fuer check_restriction()
+
+      * eine lfun-closure Diese erhaelt beim Aufruf das betreffende
+        Objekt als Argument und darf eine 0 fuer 'erlaubt', 1 fuer
+        'nicht erlaubt (mit Standardtext)' oder einen string fuer
+        'nicht erlaubt mit individuellem Text' sein.
 
 
 BEMERKUNGEN
@@ -59,4 +61,4 @@
 SIEHE AUCH
 ==========
 
-   AddCmd
+   *AddCmd()*
diff --git a/doc/props/obsolete/P_EXTRA_LOOK b/doc/props/obsolete/P_EXTRA_LOOK
new file mode 100644
index 0000000..203fb8e
--- /dev/null
+++ b/doc/props/obsolete/P_EXTRA_LOOK
@@ -0,0 +1,57 @@
+
+P_EXTRA_LOOK
+************
+
+********************* VERALTETE PROPERTY
+****************************** * Diese Property ist veraltet. Bitte
+benutzt sie NICHT mehr, sondern  * * stattdessden AddExtraLook().
+* *******************************************************************
+****
+
+
+NAME
+====
+
+   P_EXTRA_LOOK                    "extralook"
+
+
+DEFINIERT IN
+============
+
+   /sys/living/description.h
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt einen String. Sie wird entweder in Lebewesen
+   direkt oder in Objekten gesetzt wird, die im Besitz von Lebewesen
+   sein koennen.
+   Diese Strings erscheinen dann zusaetzlich in der Langbeschreibung
+   des Lebewesens bzw. des Besitzers (wenn das Objekt sich direkt im
+    Lebewesen befindet, jedoch nicht in einem Behaelter im Lebewesen).
+   Fuer den Zeilenumbruch muss man selbst sorgen.
+
+
+BEISPIEL
+========
+
+   Ein Spieler hat eine Pfeife im Mund. In dieser Pfeife setzt man z.B.
+   in der Funktion zum Pfeife Rauchen folgendes:
+     SetProp(P_EXTRA_LOOK,break_string(
+    this_player()->Name(WER)+" ist ganz umnebelt.",78);
+
+
+BEMERKUNG
+=========
+
+   BITTE NICHT MEHR BENUTZEN!
+
+
+SIEHE AUCH
+==========
+
+         long(), /std/living/description.c, /std/player/base.c
+   AddExtraLook(), RemoveExtraLook()
+
+13.05.2007, Zesstra
