diff --git a/doc/lfun/AddRoute b/doc/lfun/AddRoute
index 3ca0093..265fa8a 100644
--- a/doc/lfun/AddRoute
+++ b/doc/lfun/AddRoute
@@ -1,84 +1,114 @@
+
 AddRoute()
-FUNKTION:
-    public varargs void AddRoute(string room, int stay, int next, 
-        string harbour_desc, mixed dest_ids, string deststr)
+**********
 
-DEFINIERT IN:
-    /std/transport.c
 
-ARGUMENTE:
-    string room
-        Filename der Haltestelle (des Ziels)
-    int stay
-        Aufenthaltszeit an der Haltestelle.
-    int next
-        Fahrtzeit von dort bis zum naechsten Fahrplanpunkt
-    string harbour_desc
-        Name der Haltestelle (fuer QueryArrived)
-    mixed dest_ids
-        kleingeschriebene IDs der Haltestelle
-    string destrstr
-        Unbenutzt / Undefiniert.
+FUNKTION
+========
 
-BESCHREIBUNG:
-    Dem Fahrplan des Transporters wird eine neue Haltestelle hinzugefuegt.
+   public varargs void AddRoute(string room, int stay, int next,
+       string harbour_desc, mixed dest_ids, string deststr)
 
-    Bei Erreichen der Haltestelle wird der Transporter in den Raum 'room'
-    bewegt und sichtbar gemacht. Nun kann man ihn fuer 'stay' Sekunden
-    betreten oder verlassen, bevor er ablegt (unsichtbar gemacht wird).
-    Nach 'next' Sekunden wird dann der naechste Punkt des Fahrplans
-    ausgefuehrt.
-     
-    'harbour_desc' ist ein String, den QueryArrived() zurueckgibt, wenn sich
-    der Transporter an einer Haltestelle befindet. In der Regel ist das ein
-    String, der die Haltestelle naeher beschreibt.
-    
-    'dest_ids' ist ein Array von Strings, die als ID-Code fuer diese 
-    Haltstelle dienen. Das wird zB bei der Ermittlung einer Haltestelle bei 
-    "reise nach" benutzt. Wenn 'dest_ids' nicht gesetzt ist, und auch 
-    P_HARBOUR des Zielhafens nicht korrekt gesetzt ist, werden 
-    grossgeschriebene Begriffe aus 'harbour_desc' verwendet.
 
-BEISPIELE:
-    #1 Hier ein Auszug aus /d/inseln/schiffe/jolle.c:
+DEFINIERT IN
+============
 
-      AddRoute("/d/ebene/room/PortVain/po_haf2", 40,
-               10, "Hafen von Port Vain");
+   /std/transport.c
 
-    Die Jolle wird also beim Anlegen in den Port Vainer Hafen bewegt und
-    laesst sich dort 40 Sekunden lang betreten oder verlassen.
-    QueryArrived() liefert waehrend dieser Zeit den String "Hafen von Port
-    Vain" zurueck. Nach den 40 Sekunden legt die Jolle ab, und nach
-    weiteren 10 Sekunden wird die naechste Station in ihrem Fahrplan
-    angefahren.
 
-    #2 Die Galeere nach Orkhausen:
-      AddRoute(INSEL("steg"), 30, 20, "Verlorene Land ( Orkhausen )" );
-      - haelt 30 Sekunden
-      - reist 20 Sekunden
-      - reist nach INSEL("steg"), bekannt als "Verlorene Land ( Orkhausen )"
-      - da keine 'dest_ids' angegeben sind, waere eine so definierte 
-        Haltstelle nur mit den IDs ansprechbar, die in P_HARBOURS im Zielraum
-        angegeben sind.
+ARGUMENTE
+=========
 
-    Wenn man nun erreichen wollte, dass das Ziel auch mit dem Kuerzel "vland"
-    ansprechbar ist, kann man zum einen explizite 'dest_ids' eintragen:
-      AddRoute(INSEL("steg"), 30, 20, "Verlorene Land ( Orkhausen )",
-               ({"verlorenes", "land", "orkhausen", "vland"}));
-    Dies laesst sich im Zielhafen aber auch durch Eintragen des Kuerzels
-    "vland" in P_HARBOUR erreichen. Dies hat den Vorteil, dass dieser Hafen
-    dann von allen Transportern, die dort anlegen, unter demselben Namen
-    erreicht werden kann.
-    
-HINWEISE:
-    Dadurch, dass die Eintraege aus P_HARBOUR und 'dest_ids' gleichberechtigt
-    fuer "reise nach <ziel>" verwendet werden koennen, ist es moeglich,
-    dass die Reiseziele auf einem Schiff unter zusaetzlichen Bezeichnungen 
-    bekannt sind, als an Land (zum Beispiel koennte eine fernwestliche
-    Besatzung die Ziele anders nennen).
+   string room
+       Filename der Haltestelle (des Ziels)
+   int stay
+       Aufenthaltszeit an der Haltestelle.
+   int next
+       Fahrtzeit von dort bis zum naechsten Fahrplanpunkt
+   string harbour_desc
+       Name der Haltestelle (fuer QueryArrived)
+   mixed dest_ids
+       kleingeschriebene IDs der Haltestelle
+   string destrstr
+       Unbenutzt / Undefiniert.
 
-SIEHE AUCH:
-Funktionen:  AddMsg(L), AddFun(L), /std/transport.c
-Properties:  P_HARBOUR, P_NO_TRAVELING, P_TRAVEL_INFO
+
+BESCHREIBUNG
+============
+
+   Dem Fahrplan des Transporters wird eine neue Haltestelle hinzugefuegt.
+
+   Bei Erreichen der Haltestelle wird der Transporter in den Raum 'room'
+   bewegt und sichtbar gemacht. Nun kann man ihn fuer 'stay' Sekunden
+   betreten oder verlassen, bevor er ablegt (unsichtbar gemacht wird).
+   Nach 'next' Sekunden wird dann der naechste Punkt des Fahrplans
+   ausgefuehrt.
+
+
+
+   'harbour_desc' ist ein String, den QueryArrived() zurueckgibt, wenn sich
+   der Transporter an einer Haltestelle befindet. In der Regel ist das ein
+   String, der die Haltestelle naeher beschreibt.
+
+
+
+   'dest_ids' ist ein Array von Strings, die als ID-Code fuer diese
+   Haltstelle dienen. Das wird zB bei der Ermittlung einer Haltestelle bei
+   "reise nach" benutzt. Wenn 'dest_ids' nicht gesetzt ist, und auch
+   P_HARBOUR des Zielhafens nicht korrekt gesetzt ist, werden
+   grossgeschriebene Begriffe aus 'harbour_desc' verwendet.
+
+
+BEISPIELE
+=========
+
+   #1 Hier ein Auszug aus /d/inseln/schiffe/jolle.c:
+
+     AddRoute("/d/ebene/room/PortVain/po_haf2", 40,
+              10, "Hafen von Port Vain");
+
+   Die Jolle wird also beim Anlegen in den Port Vainer Hafen bewegt und
+   laesst sich dort 40 Sekunden lang betreten oder verlassen.
+   QueryArrived() liefert waehrend dieser Zeit den String "Hafen von Port
+   Vain" zurueck. Nach den 40 Sekunden legt die Jolle ab, und nach
+   weiteren 10 Sekunden wird die naechste Station in ihrem Fahrplan
+   angefahren.
+
+   #2 Die Galeere nach Orkhausen:
+     AddRoute(INSEL("steg"), 30, 20, "Verlorene Land ( Orkhausen )" );
+     - haelt 30 Sekunden
+     - reist 20 Sekunden
+     - reist nach INSEL("steg"), bekannt als "Verlorene Land ( Orkhausen )"
+     - da keine 'dest_ids' angegeben sind, waere eine so definierte
+       Haltstelle nur mit den IDs ansprechbar, die in P_HARBOURS im Zielraum
+       angegeben sind.
+
+   Wenn man nun erreichen wollte, dass das Ziel auch mit dem Kuerzel "vland"
+   ansprechbar ist, kann man zum einen explizite 'dest_ids' eintragen:
+     AddRoute(INSEL("steg"), 30, 20, "Verlorene Land ( Orkhausen )",
+              ({"verlorenes", "land", "orkhausen", "vland"}));
+   Dies laesst sich im Zielhafen aber auch durch Eintragen des Kuerzels
+   "vland" in P_HARBOUR erreichen. Dies hat den Vorteil, dass dieser Hafen
+   dann von allen Transportern, die dort anlegen, unter demselben Namen
+   erreicht werden kann.
+
+
+HINWEISE
+========
+
+   Dadurch, dass die Eintraege aus P_HARBOUR und 'dest_ids' gleichberechtigt
+   fuer "reise nach <ziel>" verwendet werden koennen, ist es moeglich,
+   dass die Reiseziele auf einem Schiff unter zusaetzlichen Bezeichnungen
+   bekannt sind, als an Land (zum Beispiel koennte eine fernwestliche
+   Besatzung die Ziele anders nennen).
+
+
+SIEHE AUCH
+==========
+
+Funktionen  AddMsg(L), AddFun(L), /std/transport.c Properties
+P_HARBOUR, P_NO_TRAVELING, P_TRAVEL_INFO
+
 
 2015-Jan-18, Arathorn.
+======================
