diff --git a/doc/sphinx/props/P_AERIAL_HELPERS.rst b/doc/sphinx/props/P_AERIAL_HELPERS.rst
index df12a3b..ace652b 100644
--- a/doc/sphinx/props/P_AERIAL_HELPERS.rst
+++ b/doc/sphinx/props/P_AERIAL_HELPERS.rst
@@ -3,31 +3,27 @@
 
 NAME
 ----
-::
 
      P_AERIAL_HELPERS "lib_p_aerial_helpers"
 
 DEFINIERT IN
 ------------
-::
 
      <living/helpers.h>
 
 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:
+     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().
+     :doc:`../lfun/RegisterHelperObject`.
 
 BEMERKUNGEN
 -----------
-::
 
      Diese Property kann nur abgefragt werden.
      Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche 
@@ -35,14 +31,15 @@
 
 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:
 
+.. code-block:: pike
+
      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 "+
@@ -54,11 +51,8 @@
 
 SIEHE AUCH
 ----------
-::
 
-     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
-     Properties:  P_HELPER_OBJECTS, P_AQUATIC_HELPERS
+     Methoden:    :doc:`../lfun/RegisterHelperObject`, :doc:`../lfun/UnregisterHelperObject`
+     Properties:  :doc:`P_HELPER_OBJECTS`, :doc:`P_AQUATIC_HELPERS`
 
-
-12.03.2016, Arathorn
-
+04.02.2018, Arathorn
diff --git a/doc/sphinx/props/P_AQUATIC_HELPERS.rst b/doc/sphinx/props/P_AQUATIC_HELPERS.rst
index 6055df9..d041397 100644
--- a/doc/sphinx/props/P_AQUATIC_HELPERS.rst
+++ b/doc/sphinx/props/P_AQUATIC_HELPERS.rst
@@ -3,19 +3,16 @@
 
 NAME
 ----
-::
 
      P_AQUATIC_HELPERS "lib_p_aquatic_helpers"
 
 DEFINIERT IN
 ------------
-::
 
      <living/helpers.h>
 
 BESCHREIBUNG
 ------------
-::
 
      Diese Property kann in allen Lebewesen abgefragt werden, um die Objekte
      zu ermitteln, die fuer die Unterstuetzung beim Tauchen bei diesem 
@@ -23,11 +20,10 @@
      Form zurueckgeliefert:
      ([ Objekt : Rueckgabewert von dessen Callback-Methode ])
      Eine Erlaeuterung dazu findet sich in der Dokumentation zu 
-     RegisterHelperObject().
+     :doc:`../lfun/RegisterHelperObject`.
 
 BEMERKUNGEN
 -----------
-::
 
      Diese Property kann nur abgefragt werden.
      Es ist erwuenscht, dass entsprechende, neu geschaffene Stellen jegliche 
@@ -35,14 +31,15 @@
 
 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:
 
+.. code-block:: pike
+
      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 "
@@ -55,11 +52,8 @@
 
 SIEHE AUCH
 ----------
-::
 
-     Methoden:    RegisterHelperObject(L), UnregisterHelperObject(L)
-     Properties:  P_HELPER_OBJECTS, P_AERIAL_HELPERS
+     Methoden:    :doc:`../lfun/RegisterHelperObject`, :doc:`../lfun/UnregisterHelperObject`
+     Properties:  :doc:`P_HELPER_OBJECTS`, :doc:`P_AERIAL_HELPERS`
 
-
-06.04.2016, Arathorn
-
+04.02.2018, Arathorn
diff --git a/doc/sphinx/props/P_HARBOUR.rst b/doc/sphinx/props/P_HARBOUR.rst
index a8a7515..60d01d1 100644
--- a/doc/sphinx/props/P_HARBOUR.rst
+++ b/doc/sphinx/props/P_HARBOUR.rst
@@ -3,25 +3,21 @@
 
 NAME
 ----
-::
 
     P_HARBOUR                                  "harbour_name"                   
 
 DEFINIERT IN
 ------------
-::
 
     /sys/transport.h
 
 BESCHREIBUNG
 ------------
-::
 
     Array mit eindeutiger Bezeichnung des 'Hafens'
 
 BEMERKUNGEN
 -----------
-::
 
     Diese Property wird in Raeumen gesetzt, die als Anleger fuer Transporter
     dienen sollen. Sie enthaelt ein Array aus zwei Elementen, einem String
@@ -30,8 +26,11 @@
     ({ "zur Sonneninsel", ({"sonneninsel"}) }) oder 
     ({ "nach Titiwu", ({"titiwu"}) })
 
-    Damit bekommt der Spieler bei einer Abfrage seiner Reiseroute mittels
-    "reise route" eine Ausgabe wie 
+    Hafen der Sonneninsel: ({ "zur Sonneninsel", ({"sonneninsel"}) }) oder
+    Hafen von Titiwu:      ({ "nach Titiwu", ({"titiwu"}) })
+
+    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'.
 
@@ -54,7 +53,6 @@
 
 HINWEISE
 --------
-::
 
     Wird der zweite Parameter in dieser Property, d.h. die Liste der 
     Anleger-IDs, nicht korrekt gesetzt, kann das dazu fuehren, dass Spieler
@@ -67,7 +65,6 @@
 
 HISTORIE
 --------
-::
 
     Frueher war der zweite Eintrag in dieser Property ein einzelner String.
     Es existiert eine SetMethode auf dieser Property, die solche Daten in
@@ -76,21 +73,17 @@
     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)
+  Properties:     :doc:`P_NO_TRAVELING`, :doc:`P_TRAVEL_INFO`
+  Funktionen:     :doc:`../lfun/AddRoute`
   Spielerbefehle: reise
   weitere Doku:   /d/inseln/schiffe/HowTo
 
 LETZTE AENDERUNG
 ----------------
-::
 
-2015-Jan-18, Arathorn
-
+04.02.2018, Arathorn
