diff --git a/doc/lfun/AddInfo b/doc/lfun/AddInfo
index 76c6e1c..730c26f 100644
--- a/doc/lfun/AddInfo
+++ b/doc/lfun/AddInfo
@@ -6,8 +6,9 @@
 FUNKTION
 ========
 
-   public varargs void AddInfo(string|string* key, string|closure info,
-                  string indent, int|string silent, string|closure casebased);
+   public varargs void AddInfo(string|string* key, string|closure
+   info,
+      string indent, int|string silent, string|closure casebased);
 
 
 DEFINIERT IN
@@ -20,12 +21,13 @@
 =========
 
    string|string* frage
-      Schluesselwoerter, fuer die der NPC eine Antwort geben soll,
+      Schluesselphrase(n), fuer die der NPC eine Antwort geben soll,
       wenn man ihn danach fragt
 
    string|closure meldung
       Information, die gegeben werden soll; wenn 'meldung' eine
-      Closure ist, wird der gerufenen Funktion nichts uebergeben.
+      Closure ist, wird der gerufenen Funktion die vom Spieler
+      gefragte Schluesselphrase uebergeben.
 
    string indent    (optional)
       Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
@@ -34,8 +36,8 @@
       Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
 
    string|closure casebased   (optional)
-      Closure mit Returnwert string oder int. Der Funktion werden
-      keine Argumente uebergeben.
+      Closure mit Returnwert string oder int. Der Funktion wird die
+      vom Spieler gefragte Schluesselphrase uebergeben.
 
 
 BESCHREIBUNG
@@ -48,7 +50,7 @@
    Meldung wird der Name des Monsters vorangestellt.
 
    Frage:
-      Schluessel muessen kleingeschrieben sein, koennen aber
+      Schluesselphrasen muessen kleingeschrieben sein, koennen aber
       Leerzeichen enthalten.
 
    Meldung:
@@ -125,13 +127,13 @@
 
    // Beispiel 3: dynamisch
    // ein Prototyp, damit wir die Methode bekannt machen
-   protected string query_kekse();
+   protected string query_kekse(string key);
 
    AddInfo(({"keks","kekse"}),
        #'query_kekse,        // ein Verweis auf die Funktion
        "sagt: ");
 
-   protected string query_kekse() {
+   protected string query_kekse(string key) {
      if(present("keks", this_object()))
        return("Ich hab noch welche. Aetsch!");
      else if(present("keks", environment()))
@@ -146,8 +148,8 @@
 
    // Beispiel 4: dynamischer
    // ein Prototyp, damit wir die Methode bekannt machen
-   protected string query_kekse();
-   protected mixed case_fighting();
+   protected string query_kekse(string key);
+   protected mixed case_fighting(string key);
 
    AddInfo(({"keks","kekse"}),
        #'query_kekse,"        // ein Verweis auf die Funktion
@@ -155,13 +157,13 @@
        0,                     // nicht silent :)
        #'case_fighting);      // noch ein Funktionsverweis
 
-   protected string query_kekse() {
+   protected string query_kekse(string key) {
      if(present("keks"))
        return("Ich hab noch welche. Aetsch!");
      return("Menno. Keine mehr da!");
    }
 
-   protected mixed case_fighting() {
+   protected mixed case_fighting(string key) {
      if(InFight())
        return("Keine Zeit fuer Kekse. Muss kaempfen.");
      return 0;
@@ -177,7 +179,7 @@
 
    // Beispiel 5: ### dynamisch und komplex ###
    // ein Prototyp, damit wir die Methode bekannt machen
-   protected string question_gold();
+   protected string question_gold(string key);
 
    // "gold" wird eine Closure auf die Methode question_gold()
    // zugewiesen, ausserdem soll es still bleiben (wir informieren
@@ -185,7 +187,7 @@
    AddInfo("gold", #'question_gold, "murmelt: ", 1);
 
    // los gehts, wir generieren unsere Antwort selbst
-   protected string question_gold() {
+   protected string question_gold(string key) {
      // wieviel Kohle hat der Spieler
      int money = this_player()->QueryMoney();
      string* valuables = ({});
@@ -266,4 +268,4 @@
    Interna:
       GetInfoArr() , do_frage()
 
-24.09.2020, Arathorn
+09.08.2021, Zesstra
diff --git a/doc/lfun/AddSpecialInfo b/doc/lfun/AddSpecialInfo
index be61558..3c164fd 100644
--- a/doc/lfun/AddSpecialInfo
+++ b/doc/lfun/AddSpecialInfo
@@ -6,31 +6,9 @@
 FUNKTION
 ========
 
-   public varargs void AddSpecialInfo(string|string* keys, string functionname,
-                  string indent, int|string silent, string|closure  casebased);
-
-
-ARGUMENTE
-=========
-
-   string|string* frage
-     Schluesselwoerter, fuer die der NPC eine Antwort geben soll, wenn
-     man ihn danach fragt
-
-   string functionname
-     Name der Funktion, die gerufen werden soll, um den Informationstext
-     des NPCs zu ermitteln. Der gerufenen Funktion werden keine Argumente
-     uebergeben.
-
-   string indent    (optional)
-     Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
-
-   int|string silent    (optional)
-     Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
-
-   string|closure casebased   (optional)
-     Closure mit Returnwert string oder int.
-     Der Funktion werden keine Argumente uebergeben.
+   public varargs void AddSpecialInfo(string|string* keys, string
+   functionname,
+      string indent, int|string silent, string|closure  casebased);
 
 
 DEFINIERT IN
@@ -39,25 +17,49 @@
    /std/npc/info.c
 
 
+ARGUMENTE
+=========
+
+   string|string* frage
+      Schluesselphrase(n), fuer die der NPC eine Antwort geben soll,
+      wenn man ihn danach fragt
+
+   string functionname
+      Name der Funktion, die gerufen werden soll, um den
+      Informationstext des NPCs zu ermitteln. Der gerufenen Funktion
+      wird die vom Spieler gefragte Schluesselphrase uebergeben.
+
+   string indent    (optional)
+      Text, der sich bei mehrzeiligen Meldungen wiederholen soll.
+
+   int|string silent    (optional)
+      Ist silent gesetzt, so erfolgt Antwort nur an Fragenden.
+
+   string|closure casebased   (optional)
+      Closure mit Returnwert string oder int. Der Funktion wird die
+      vom Spieler gefragte Schluesselphrase uebergeben.
+
+
 BESCHREIBUNG
 ============
 
-   Wenn ein Spieler ein NPC mittels "frage <monstername> nach <frage>" nach
-   einer Information mit dem Schluessel frage fragt, so wird die Methode
-   "function" gerufen. Die Rueckgabe wird als Meldung ausgegeben.
+   Wenn ein Spieler ein NPC mittels "frage <monstername> nach <frage>"
+   nach einer Information mit dem Schluessel frage fragt, so wird die
+   Methode "function" gerufen. Die Rueckgabe wird als Meldung
+   ausgegeben.
 
    Fuer die Beschreibung der weiteren Parameter siehe man AddInfo(L).
 
-   AddSpecialInfo(keys, "function", ...) entspricht:
-   - AddInfo(keys, #'function, ...)
+   "AddSpecialInfo(keys, "function", ...)" entspricht "AddInfo(keys,
+   #'function, ...)".
 
 
 BEMERKUNGEN
 ===========
 
    Da AddSpecialInfo() und AddInfo() auf die gleichen Daten zugreifen,
-   kann man Informationen, die mit AddSpecialInfo() gesetzt wurden, auch
-   mit RemoveInfo() entfernen. Es gibt kein RemoveSpecialInfo().
+   kann man Informationen, die mit AddSpecialInfo() gesetzt wurden,
+   auch mit RemoveInfo() entfernen. Es gibt kein RemoveSpecialInfo().
 
 
 BEISPIELE
@@ -69,13 +71,13 @@
                   "query_kekse",      // der Methodenname
                   "sagt: ");
    // ist uebrigens das gleiche wie:
-   // static string query_kekse();
+   // static string query_kekse(string key);
    // ...
    // AddInfo(({"keks","kekse"}),
    //         #'query_kekse,          // ein Verweis auf die Methode
    //         "sagt: ");
    ...
-   static string query_kekse() {
+   static string query_kekse(string key) {
     if(present("keks"))
      return("Ich hab noch welche. Aetsch!");
     return("Menno. Keine mehr da!");
@@ -106,4 +108,4 @@
    Interna:
       GetInfoArr() , do_frage()
 
-24.09.2020, Arathorn
+09.08.2021, Zesstra
diff --git a/doc/lfun/short b/doc/lfun/short
index c446d1c..5da9b46 100644
--- a/doc/lfun/short
+++ b/doc/lfun/short
@@ -6,7 +6,7 @@
 FUNKTION
 ========
 
-   public varargs string short();
+   public string short();
 
 
 DEFINIERT IN
@@ -24,7 +24,7 @@
 BESCHREIBUNG
 ============
 
-   Der Inhalt der Property P_SHORT wird ausgewertet, mit ".n"
+   Der Inhalt der Property P_SHORT wird ausgewertet, mit ".\n"
    abgeschlossen und zurueckgegeben.
 
    Durch Ueberladen von short() lassen sich ggf. weitere Eigenschaften
diff --git a/doc/props/P_BRIEF b/doc/props/P_BRIEF
index f6d3769..34ba0aa 100644
--- a/doc/props/P_BRIEF
+++ b/doc/props/P_BRIEF
@@ -18,4 +18,10 @@
 BESCHREIBUNG
 ============
 
-   Ist gesetzt, wenn der Spieler nur die Kurzbeschreibung sehen will.
+   Speichert die Einstellung fuer "lang", "kurz" oder "ultrakurz" des
+   Spielers.
+   Werte: 0 fuer lang, 1 fuer kurz, 2 fuer ultrakurz.
+
+   Bitte nur lesend zugreifen, nicht nach Belieben in Spielern aendern.
+
+Letzte Aenderung: Arathorn, 2021-09-05
diff --git a/doc/props/P_CONTAINER b/doc/props/P_CONTAINER
index e779f75..019ff81 100644
--- a/doc/props/P_CONTAINER
+++ b/doc/props/P_CONTAINER
@@ -12,10 +12,30 @@
 DEFINIERT IN
 ============
 
-   /sys/properties.h
+   /sys/container.h
 
 
 BESCHREIBUNG
 ============
 
-   *** KEINE BESCHREIBUNG VORHANDEN ***
+   Markiert Objekte als Container im spieltechnischen Sinn. Aktuell
+   hat dies nur den Effekt, dass Spieler in Objekte mit gesetztem
+   P_CONTAINER Objekte hereinstecken und herausnehmen koennen, was bei
+   Objekten, die rein aus technischer Sicht Container sind, wie
+   Raeumen oder Livings, nicht moeglich ist.
+
+
+ANMERKUNGEN
+===========
+
+   Bei von *../std/container*, /std/armour_container und
+   /std/clothing_container geerbten Objekten wir die Property
+   automatisch gesetzt.
+
+
+SIEHE AUCH
+==========
+
+   *../std/container*
+
+Letzte Aenderung: 07.05.2021, Bugfix
diff --git a/doc/props/P_TRAY b/doc/props/P_TRAY
index 0c394d4..dc38379 100644
--- a/doc/props/P_TRAY
+++ b/doc/props/P_TRAY
@@ -18,4 +18,14 @@
 BESCHREIBUNG
 ============
 
-   *** KEINE BESCHREIBUNG VORHANDEN ***
+   Markiert Objekte als Tray. Derzeit hat dies nur den Effekt, das
+   Spieler Objekte darauf ablegen und sie herunternehmen koennen.
+
+
+ANMERKUNGEN
+===========
+
+   Bei von /std/tray geerbten Objekten wird die Property automatisch
+   gesetzt.
+
+Letzte Aenderung: 07.05.2021, Bugfix
diff --git a/doc/sphinx/lfun/short.rst b/doc/sphinx/lfun/short.rst
index e31d7ff..439ad92 100644
--- a/doc/sphinx/lfun/short.rst
+++ b/doc/sphinx/lfun/short.rst
@@ -4,7 +4,7 @@
 FUNKTION
 --------
 
-     public varargs string short();
+     public string short();
 
 DEFINIERT IN
 ------------
@@ -19,7 +19,7 @@
 BESCHREIBUNG
 ------------
 
-     Der Inhalt der Property P_SHORT wird ausgewertet, mit ".\n"
+     Der Inhalt der Property P_SHORT wird ausgewertet, mit ".\\n"
      abgeschlossen und zurueckgegeben.
 
      Durch Ueberladen von short() lassen sich ggf. weitere Eigenschaften des
diff --git a/doc/sphinx/props/P_BRIEF.rst b/doc/sphinx/props/P_BRIEF.rst
index d50f389..43ba64b 100644
--- a/doc/sphinx/props/P_BRIEF.rst
+++ b/doc/sphinx/props/P_BRIEF.rst
@@ -17,5 +17,11 @@
 ------------
 ::
 
-     Ist gesetzt, wenn der Spieler nur die Kurzbeschreibung sehen will.
+     Speichert die Einstellung fuer "lang", "kurz" oder "ultrakurz" des
+     Spielers.
+     Werte: 0 fuer lang, 1 fuer kurz, 2 fuer ultrakurz.
 
+     Bitte nur lesend zugreifen, nicht nach Belieben in Spielern aendern.
+
+
+Letzte Aenderung: Arathorn, 2021-09-05
diff --git a/doc/wiz/homemud b/doc/wiz/homemud
index db6ea5f..d1de64a 100644
--- a/doc/wiz/homemud
+++ b/doc/wiz/homemud
@@ -10,9 +10,9 @@
    bauen, benoetigt man folgende Pakete (die Namen koennen je nach
    Distribution abweichen):
 
-   libjson0/json-c, libgnutls30, libsqlite3, libpcre3, libxml2, libgcrypt,
-   libpcre3, libiconv (diese ist bei neueren Distributionen in
-   libc6-dev enthalten).
+   libjson0/json-c, libgnutls30, libsqlite3, libpcre3, libxml2,
+   libgcrypt, libpcre3, libiconv (diese ist bei neueren Distributionen
+   in libc6-dev enthalten).
 
    Beachte, dass man auf debianbasierten System auch die
    entsprechenden Entwicklerpackete (**-dev*) mitinstallieren muss,
@@ -23,7 +23,8 @@
 =======================================
 
    Mit den folgenden Schritten installiert man die gegenwaertige
-   mudlib und einen Driver der Version LDMUD-3.6.x
+   mudlib und einen Driver der Version LDMUD-3.6.4 oder
+   https://github.com/zesstra/ldmud/releases/tag/mgreboot-20210507
 
    1. Lade den aktuellen Driver unter
       https://github.com/ldmud/ldmud herunter. Du kannst auch das Repo
@@ -38,13 +39,15 @@
 
    3. Gehe in das *src/*-Verzeichnis des drivers
 
-   4. Im *src/*-Verzeichnis, fuehere "./autogen.sh" aus
+   4. Im *src/*-Verzeichnis, fuehre "./autogen.sh" aus (Hierfuer
+      ist das Paket autoconf empfehlenswert.)
 
    5. Im src/-Verzeichnis, passe die Pfade in settings/morgengrauen
       an, und fuehre settings/morgengrauen aus
 
    6. im src/-Verzeichnis, kompiliere und installiere den Treiber
-      mit "make all" und "make install-all".
+      mit "make all" und "make install-all". (Hierfuer wird das Paket
+      bison benoetigt.)
 
    7. Falls noch nicht geschehen, schiebe die Mudlib in den Ordner,
       den Du in *settings/morgengrauen* eingestellt hast
