diff --git a/doc/lfun/AddExtraLook b/doc/lfun/AddExtraLook
index 1658030..c283ba5 100644
--- a/doc/lfun/AddExtraLook
+++ b/doc/lfun/AddExtraLook
@@ -50,9 +50,7 @@
 
    object ob:
       Ein Objekt, an dem die in 'look' und 'lookende' abgelegten
-      Methoden bei Abfrage oder Ablauf aufgerufen werden. Die Methoden
-      bekommen das Living uebergeben und muessen selbst umgebrochene
-      Strings zurueckgeben.
+      Methoden bei Abfrage oder Ablauf aufgerufen werden.
 
 
 BESCHREIBUNG
@@ -62,13 +60,15 @@
 
    Texte dafuer koennen mit dieser Funktion hinzugefuegt und verwaltet
    werden. Wenn ihr nicht ohnehin unbedingt ein Objekt IM Spieler
-   ablegt (wie zB eine Ruestung mit einem Extralook) (1), dann ist
-   diese Methode bevorzugt zu verwenden.
+   ablegt (wie zB eine Ruestung mit einem Extralook), dann ist diese
+   Methode bevorzugt zu verwenden.
 
    Ueber die Angabe eines 'ob' koennen Looks auch dynamisch erstellt
    werden, dabei werden dann 'look' bzw. 'lookende' als Methoden am
-   Objekt gerufen. (1) Ein so fuer AddExtraLook verwendetes Objekt
-   'ob' muss nicht wie bisher ueblich im Inv des Spieler liegen!
+   Objekt gerufen. Die Methoden bekommen das Living uebergeben und
+   muessen selbst umgebrochene Strings zurueckgeben. Ein so fuer
+   AddExtraLook verwendetes Objekt 'ob' muss nicht wie bisher ueblich
+   im Inv des Spieler liegen!
 
    Direkt angegebene Texte (also nicht von einem Objekt 'ob' bezogen)
    werden durch replace_personal() gefiltert und unter Beibehaltung
@@ -78,21 +78,16 @@
 BEMERKUNGEN
 ===========
 
-   * Die Meldung von <lookende> bzw. der Funktionsaufruf erfolgt,
-     wenn der Extralook der Lebewesen das erste Mal nach Ablauf der
-     Gueltigkeit aufgerufen wird.
+   * Die Endemeldung wird nicht genau mit Ablauf der angegebenen
+     Zeit ausgegeben, sondern beim ersten Abruf der Langbeschreibung
+     *nach* Ablauf der Zeit.
 
    * Im Fall von permanenten Eintraegen muss das uebergbene Objekt
      eine Blueprint sein, da Clones irgendwann (spaetestens mit
      Reboot) zerstoert werden und der Eintrag dann bei Abfrage
-     automatisch geloescht wird.
-
-   * Folgerung: Clone-Objekte koennen fuer selbst beschraenkt
-     temporaere Extralooks benutzt werden.
-
-   * Die Endemeldung wird nicht genau mit Ablauf der angegebenen
-     Zeit ausgegeben, sondern beim ersten Abruf der Langbeschreibung
-     *nach* Ablauf der Zeit.
+     automatisch geloescht wird. Folgerung: Clones koennen fuer
+     kurzlebige Extralooks benutzt werden, deren Ablaufzeit an ein
+     Objekt gebunden ist.
 
 
 RUECKGABEWERTE
@@ -141,8 +136,11 @@
    living->AddExtraLook("get_my_special_extralook", 3600, 0, 0,
                         this_object());
 
-   // In diesem Fall muss this_object() natuerlich die Funktion
-   // "get_my_special_extralook()" definieren, die einen String zurueckgibt.
+   public string get_my_special_extralook(object lv)
+   {
+     return
+       lv.Name() + " hat schon " + data[getuuid(lv)] + " mal gewonnen!\n");
+   }
 
    // (6) Mit Objekt, welches den Extralook dynamisch erzeugt
    // Hier wird explizit die Blueprint uebergeben, der Extralook ist also
@@ -164,4 +162,4 @@
    Fuer Spielerobjekte:
       P_EXTRA_LOOK
 
-Letzte Aenderung: 2021-01-21, Arathorn
+Letzte Aenderung: 21.09.2022, Bugfix
diff --git a/doc/lfun/NotifyPlayerDeath b/doc/lfun/NotifyPlayerDeath
index 924a704..4cf3af0 100644
--- a/doc/lfun/NotifyPlayerDeath
+++ b/doc/lfun/NotifyPlayerDeath
@@ -72,10 +72,10 @@
 BEISPIELE
 =========
 
-   Folgendes Beispiel demonstriert beispielsweise, wie man Tode von
-   Spielern mitloggen kann (das Beispiel ist hierbei auf den am
-   haeufigsten auftretenden Fall bezogen, dass nur das toetende Objekt
-   den Tod protokollieren soll):
+   Folgendes Beispiel demonstriert, wie man Tode von Spielern
+   mitloggen kann (das Beispiel ist hierbei auf den am haeufigsten
+   auftretenden Fall bezogen, dass nur das toetende Objekt den Tod
+   protokollieren soll):
 
       void NotifyPlayerDeath(object dead, object killer, int lost_exp)
       {
@@ -103,7 +103,7 @@
 SIEHE AUCH
 ==========
 
-   Defend(), do_damage(), *../efun/catch*, *../efun/write_file*,
-   log_file() P_LAST_DEATH_PROPS
+   Defend(), do_damage(), catch(), write_file(), log_file()
+   P_LAST_DEATH_PROPS
 
 04.04.2020, Zesstra
diff --git a/doc/lfun/QueryDefaultHome b/doc/lfun/QueryDefaultHome
new file mode 100644
index 0000000..aee35e8
--- /dev/null
+++ b/doc/lfun/QueryDefaultHome
@@ -0,0 +1,46 @@
+
+QueryDefaultHome()
+******************
+
+
+FUNKTION
+========
+
+   string QueryDefaultHome()
+
+
+DEFINIERT IN
+============
+
+   /std/player/base.c
+
+
+BESCHREIBUNG
+============
+
+   Diese Funktion wird verwendet, um den Standard-Startraum der Shell
+   abzufragen. Um den konkreten Startraum eines Spielerobjekts zu
+   ermitteln, sollte hingegen zunaechst P_START_HOME abgefragt werden.
+
+
+RUECKGABEWERT
+=============
+
+   Der Pfad zum Standard-Startraum.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Funktion wird **nicht** verwendet, um Seherhaeuser oder
+   Magier-Workrooms abzufragen. Seherhaeuser werden ueber
+   /d/seher/haeuser/hausverwalter.c konfiguriert, Workrooms ueber
+   *../props/P_STARTHOME*.
+
+
+SIEHE AUCH
+==========
+
+   SetDefaultHome(), P_START_HOME
+
+Letzte Aenderung: 28.09.2022, Bugfix
diff --git a/doc/lfun/SetDefaultHome b/doc/lfun/SetDefaultHome
new file mode 100644
index 0000000..2b9de88
--- /dev/null
+++ b/doc/lfun/SetDefaultHome
@@ -0,0 +1,54 @@
+
+SetDefaultHome()
+****************
+
+
+FUNKTION
+========
+
+   protected string SetDefaultHome(string home)
+
+
+DEFINIERT IN
+============
+
+   /std/player/base.c /sys/player/base.h
+
+
+ARGUMENTE
+=========
+
+   string home
+      Der Startraum des Spielers
+
+
+BESCHREIBUNG
+============
+
+   Diese Funktion wird in der Shell verwendet, um den Standard-
+   Startraum zu setzen fuer alle Objekte dieser Shell (Rasse) zu
+   setzen. Fuer individuelle Spielerobjekte kann dieser ggf. mit der
+   Property P_START_HOME geaendert werden.
+
+
+RUeCKGABEWERT
+=============
+
+   Das neue Default-Home.
+
+
+BEMERKUNGEN
+===========
+
+   Diese Funktion wird **nicht** verwendet, um Seherhaeuser oder
+   Magier-Workrooms zu setzen. Seherhaeuser werden ueber
+   /d/seher/haeuser/hausverwalter konfiguriert, Workrooms ueber
+   P_START_HOME.
+
+
+SIEHE AUCH
+==========
+
+   QueryDefaultHome(), P_START_HOME
+
+Letzte Aenderung: 28.09.2022, Bugfix
diff --git a/doc/lfun/master/find_userinfo b/doc/lfun/master/find_userinfo
new file mode 100644
index 0000000..0a61400
--- /dev/null
+++ b/doc/lfun/master/find_userinfo
@@ -0,0 +1,42 @@
+
+find_userinfo()
+***************
+
+
+FUNCTION
+========
+
+   public int find_userinfo(string user)
+
+
+DEFINIERT IN
+============
+
+   /secure/master/userinfo.c
+
+
+ARGUMENTE
+=========
+
+   * user UID des abzufragenden users
+
+
+BESCHREIBUNG
+============
+
+   Gibt zurueck, ob user existiert und traegt die Anfrage ggf. in den
+   Cache ein.
+
+
+RUECKGABEWERT
+=============
+
+   1, wenn user existiert, sonst 0.
+
+
+SIEHE AUCH
+==========
+
+   *query_userlist*
+
+Letzte Aenderung: 31.01.2022, Bugfix
