diff --git a/doc/hook/create_lwobject b/doc/hook/create_lwobject
new file mode 100644
index 0000000..8872e73
--- /dev/null
+++ b/doc/hook/create_lwobject
@@ -0,0 +1,31 @@
+SYNOPSIS
+        #include <sys/driver_hooks.h>
+
+        set_driver_hook(H_CREATE_LWOBJECT, value)
+
+        <value> being:
+
+          void <name>    (...)
+          void <closure> ()
+          void <closure> (lwobject obj_to_init, ...)
+
+DESCRIPTION
+        Optional hooks to initialize a lightweight object after creation.
+        Hook setting can be unbound lambda closures, or the name of the
+        function (static or public) to call in the object.
+
+        If the hook is a closure expecting arguments, it is bound to the
+        current object and called with the created object as the first
+        argument and any further arguments from the new_lwobject() call.
+        If the hook is a closure without arguments, it is bound to
+        the object to be initalized and called.
+
+        If the hook is defined as the name of an lfun in the lightweight
+        object, it is called in the new lwobject with any further arguments
+        from the new_lwobject() call.
+
+HISTORY
+        LDMud 3.6.5 introduced lightweight objects.
+
+SEE ALSO
+        hooks(C), create_ob(H), create_super(H), create_clone(H)
diff --git a/doc/hook/lwobject_uids b/doc/hook/lwobject_uids
new file mode 100644
index 0000000..610b328
--- /dev/null
+++ b/doc/hook/lwobject_uids
@@ -0,0 +1,35 @@
+SYNOPSIS
+        #include <sys/driver_hooks.h>
+
+        set_driver_hook(H_LWOBJECT_UIDS, value)
+
+        <value> being:
+
+          mixed <closure>(object blueprint)
+
+DESCRIPTION
+        Mandatory hook to determine the uid and euid of a lightweight
+        object. Hook setting can be any closure.
+
+        When a lightweight object is created, the H_LWOBJECT_UIDS hook
+        is called with the blueprint object as its argument.
+
+        For the result, the following possibilities exist (<num> is
+        a non-zero number, <no-string> is anything but a string):
+
+           "<uid>"                    -> uid = "<uid>", euid = "<uid>"
+           ({ "<uid>", "<euid>" })    -> uid = "<uid>", euid = "<euid>"
+           ({ "<uid>", <no-string> }) -> uid = "<uid>", euid = 0
+
+        If strict-euids is not active, the following results are
+        possible, too:
+
+           <num>                      -> uid = 0, euid = 0
+           ({ <num>, "<euid>" })      -> uid = 0, euid = "<euid>"
+           ({ <num>, <no-string> })   -> uid = 0, euid = 0
+
+HISTORY
+        LDMud 3.6.5 introduced lightweight objects.
+
+SEE ALSO
+        hooks(C), uids(C), load_uids(H), clone_uids(H)
diff --git a/doc/lfun-liste b/doc/lfun-liste
index 29baca3..23267af 100644
--- a/doc/lfun-liste
+++ b/doc/lfun-liste
@@ -18,8 +18,6 @@
 
 * AddDetail()
 
-* AddDrink()
-
 * AddExit()
 
 * AddExp()
@@ -28,8 +26,6 @@
 
 * AddFixedObject()
 
-* AddFood()
-
 * AddFuel()
 
 * AddFun()
diff --git a/doc/lfun/AddVItem b/doc/lfun/AddVItem
index af42f22..6128e24 100644
--- a/doc/lfun/AddVItem
+++ b/doc/lfun/AddVItem
@@ -6,7 +6,7 @@
 FUNKTION
 ========
 
-   public varargs void AddvItem(string key, int refresh, mapping
+   public varargs void AddVItem(string key, int refresh, mapping
    shadowprops, string path, mapping props)
 
 
@@ -97,6 +97,9 @@
         sofort nach Mitnehmen wieder verfuegbar und mitnehmbar.
         **Vorsicht!**
 
+   Die Refresh-Konstanten sind in /sys/container/vitems.h definiert
+   und nur verfuegbar, wenn diese Datei inkludiert wird.
+
 
 BEMERKUNGEN
 ===========
@@ -192,6 +195,6 @@
 SIEHE AUCH
 ==========
 
-   RemoveVItem(), AddItem(), RemoveItem() *../std/vitems*
+   RemoveVItem(), AddItem(), RemoveItem(), /doc/std/vitems
 
 Last modified: 03.04.2019, Zesstra
diff --git a/doc/lfun/obsolete/AddDrink b/doc/lfun/obsolete/AddDrink
index 13c56b8..6f84377 100644
--- a/doc/lfun/obsolete/AddDrink
+++ b/doc/lfun/obsolete/AddDrink
@@ -3,11 +3,11 @@
 **********
 
 
-OBSOLETE LFUN
-=============
+VERALTETE LFUN
+==============
 
-   Diese Efun existiert nicht mehr. Bitte stattdessen den Hook
-   H_HOOK_INSERT benutzen. (s. /doc/std/hooks)
+   Diese Lfun ist als veraltet gekennzeichnet (deprecated); ihre Nutzung
+   loest daher eine Warnung aus. Bitte stattdessen AddToMenu() verwenden.
 
 
 FUNKTION
@@ -36,4 +36,4 @@
 
    AddToMenu(), RemoveFromMenu(), AddFood()
 
-Last modified: Fri Mar 03 13:23:00 2000 by Paracelsus
+Last modified: 2021-04-05, Arathorn
diff --git a/doc/lfun/obsolete/AddFood b/doc/lfun/obsolete/AddFood
index 5778e75..c972c86 100644
--- a/doc/lfun/obsolete/AddFood
+++ b/doc/lfun/obsolete/AddFood
@@ -3,11 +3,11 @@
 *********
 
 
-OBSOLETE LFUN
-=============
+VERALTETE LFUN
+==============
 
-   Diese Efun existiert nicht mehr. Bitte stattdessen den Hook
-   H_HOOK_INSERT benutzen. (s. /doc/std/hooks)
+   Diese Lfun ist als veraltet gekennzeichnet (deprecated); ihre Nutzung
+   loest daher eine Warnung aus. Bitte stattdessen AddToMenu() verwenden.
 
 
 FUNKTION
@@ -35,4 +35,4 @@
 
    AddToMenu(), RemoveFromMenu(), AddDrink()
 
-Last modified: Fri Mar 03 13:23:00 2000 by Paracelsus
+Last modified: 2021-04-05, Arathorn
diff --git a/doc/lfuns-obsolet b/doc/lfuns-obsolet
index 68f0238..d4927a6 100644
--- a/doc/lfuns-obsolet
+++ b/doc/lfuns-obsolet
@@ -2,6 +2,10 @@
 Verzeichnis der veralteten lfuns
 ********************************
 
+* AddDrink()
+
+* AddFood()
+
 * AddHpHook()
 
 * AddInsertHook()
diff --git a/doc/props-liste b/doc/props-liste
index b1b0cf6..2785ba3 100644
--- a/doc/props-liste
+++ b/doc/props-liste
@@ -654,7 +654,7 @@
 
 * P_PUB_UNAVAILABLE
 
-* P_PURSUERS
+* _PURSUERS
 
 * P_PUT_MSG
 
diff --git a/doc/sefun.index b/doc/sefun.index
index a531403..74410aa 100644
--- a/doc/sefun.index
+++ b/doc/sefun.index
@@ -104,12 +104,12 @@
 
 * save_object()
 
+* send_debug()
+
 * send_room()
 
 * set_heart_beat()
 
-* set_light()
-
 * set_living_name()
 
 * set_object_heart_beat()
diff --git a/doc/wiz/homemud b/doc/wiz/homemud
index 9a847a8..2f703c3 100644
--- a/doc/wiz/homemud
+++ b/doc/wiz/homemud
@@ -10,7 +10,7 @@
    bauen, benoetigt man folgende Pakete (die Namen koennen je nach
    Distribution abweichen):
 
-   libjson0/json-c, libgnutls30, libsqlite3, libpcre3, libxml2, libgcrypt,
+   libjson0/json-c, libssl, libsqlite3, libpcre3, libxml2, libgcrypt,
    libpcre3, libiconv (diese ist bei neueren Distributionen in
    libc6-dev enthalten).
 
@@ -23,7 +23,7 @@
 =======================================
 
    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.5.x (x < 99).
 
    1. Lade den aktuellen Driver unter
       https://github.com/ldmud/ldmud herunter. Du kannst auch das Repo
@@ -105,4 +105,4 @@
    bin/ldmud -m <alternative path to mudlib> <alternative port>
    # Einloggen als Jof.
 
-Letzte Aenderung: 2021-04-28 Zesstra
+Letzte Aenderung: 2019-07-31 Zesstra
