diff --git a/doc/lfun/obsolete/AddInsertHook b/doc/lfun/obsolete/AddInsertHook
index 9a372ba..8f49361 100644
--- a/doc/lfun/obsolete/AddInsertHook
+++ b/doc/lfun/obsolete/AddInsertHook
@@ -2,11 +2,12 @@
 AddInsertHook()
 ***************
 
-********************* OBSOLETE LFUN
-*********************************** * Diese Efun bitte nicht mehr
-benutzen, sondern stattdessen die       * * Hooks (s. /doc/std/hooks).
-* *******************************************************************
-**** AddInsertHook()
+
+OBSOLETE LFUN
+=============
+
+   Diese Efun existiert nicht mehr. Bitte stattdessen den Hook
+   H_HOOK_INSERT benutzen. (s. /doc/std/hooks)
 
 
 FUNKTION
@@ -15,33 +16,24 @@
    void AddInsertHook(object ob);
 
 
-DEFINIERT IN
-============
-
-   /std/player/restrictions.c
-
-
 ARGUMENTE
 =========
 
-   ob - Das Objekt, das informiert werden soll, wenn ein Objekt dem
-        Spielerinventar hinzugefuegt wurde.
+   ob
+      Das Objekt, das informiert werden soll, wenn ein Objekt dem
+      Spielerinventar hinzugefuegt wurde.
 
 
 BESCHREIBUNG
 ============
 
-   (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
-    H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
-    vorhanden.)
-
-   Diese Funktion wird im Spielerobjekt aufgerufen, um das Objekt ob als
-   Hook-Listener anzumelden. Auf diese Weise eingetragene Listener
-   werden informiert, wenn ein Objekt ins Spielerinventar bewegt wurde.
-   Technisch wird die Bewegung ueber NotifyInsert() im Spielerobjekt
-   detektiert, und im Listener-Objekt wird die Funktion InsertNotify()
-   gerufen, die als Parameter das neu ins Spielerinventar bewegte Objekt
-   uebergeben bekommt.
+   Diese Funktion wurde im Spielerobjekt aufgerufen, um das Objekt ob
+   als Hook-Listener anzumelden. Auf diese Weise eingetragene Listener
+   werden informiert, wenn ein Objekt ins Spielerinventar bewegt
+   wurde. Technisch wird die Bewegung ueber NotifyInsert() im
+   Spielerobjekt detektiert, und im Listener-Objekt wird die Funktion
+   InsertNotify() gerufen, die als Parameter das neu ins
+   Spielerinventar bewegte Objekt uebergeben bekommt.
 
 
 RUeCKGABEWERT
@@ -53,33 +45,13 @@
 BEMERKUNGEN
 ===========
 
-   Das Listener-Objekt muss sich ebenfalls im Spielerinventar befinden,
-   ansonsten wird der eingetragene Hook wieder geloescht.
-
-
-BEISPIEL
-========
-
-   a) Objekt "ob" wird im Spieler als Listener angemeldet:
-      this_player()->AddInsertHook(ob);
-
-   b) Objekt "new" wird ins Spielerinventar bewegt, das Spielerobjekt
-      informiert "ob" darueber:
-      ob->InsertNotify(new);
-
-   c) Das Listener-Objekt "ob" reagiert darauf, z.B. indem es die Fackel
-      loescht, sofern sie vorher brannte:
-      void InsertNotify(object new) {
-        if ( objectp(new) && new->id("\nfackel") &&
-             new->QueryProp(P_LIGHTED) )
-          new->unlight();
-        return;
-      }
+   Das Listener-Objekt muss sich ebenfalls im Spielerinventar
+   befinden, ansonsten wird der eingetragene Hook wieder geloescht.
 
 
 SIEHE AUCH
 ==========
 
-   NotifyInsert(), RemoveInsertHook(), QueryInsertHooks()
+   NotifyInsert(), AddInsertHook(), QueryInsertHooks()
 
-Last modified: 14.04.2010, Arathorn
+Last modified: 18.10.2019 Zesstra
diff --git a/doc/lfun/obsolete/QueryInsertHooks b/doc/lfun/obsolete/QueryInsertHooks
index 317104c..e69e46d 100644
--- a/doc/lfun/obsolete/QueryInsertHooks
+++ b/doc/lfun/obsolete/QueryInsertHooks
@@ -2,11 +2,12 @@
 QueryInsertHooks()
 ******************
 
-********************* OBSOLETE LFUN
-*********************************** * Diese Efun bitte nicht mehr
-benutzen, sondern stattdessen die       * * Hooks (s. /doc/std/hooks).
-* *******************************************************************
-**** QueryInsertHooks()
+
+OBSOLETE LFUN
+=============
+
+   Diese Efun existiert nicht mehr. Bitte stattdessen den Hook
+   H_HOOK_INSERT benutzen. (s. /doc/std/hooks)
 
 
 FUNKTION
@@ -15,12 +16,6 @@
    object *QueryInsertHooks();
 
 
-DEFINIERT IN
-============
-
-   /std/player/restrictions.c
-
-
 ARGUMENTE
 =========
 
@@ -30,10 +25,6 @@
 BESCHREIBUNG
 ============
 
-   (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
-    H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
-    vorhanden.)
-
    Diese Funktion gibt die aktuell beim Spielerobjekt angemeldeten
    Listener-Objekte zurueck.
 
@@ -49,4 +40,4 @@
 
    NotifyInsert(), AddInsertHook(), RemoveInsertHook()
 
-Last modified: 14.04.2010, Arathorn
+Last modified: 18.10.2019 Zesstra
diff --git a/doc/lfun/obsolete/RemoveInsertHook b/doc/lfun/obsolete/RemoveInsertHook
index 6c77edf..d0eeac1 100644
--- a/doc/lfun/obsolete/RemoveInsertHook
+++ b/doc/lfun/obsolete/RemoveInsertHook
@@ -2,11 +2,12 @@
 RemoveInsertHook()
 ******************
 
-********************* OBSOLETE LFUN
-*********************************** * Diese Efun bitte nicht mehr
-benutzen, sondern stattdessen die       * * Hooks (s. /doc/std/hooks).
-* *******************************************************************
-**** RemoveInsertHook()
+
+OBSOLETE LFUN
+=============
+
+   Diese Efun existiert nicht mehr. Bitte stattdessen den Hook
+   H_HOOK_INSERT benutzen. (s. /doc/std/hooks)
 
 
 FUNKTION
@@ -15,27 +16,19 @@
    void RemoveInsertHook(object ob);
 
 
-DEFINIERT IN
-============
-
-   /std/player/restrictions.c
-
-
 ARGUMENTE
 =========
 
-   ob - Das Objekt, das als Listener aus der Liste ausgetragen werden soll
+   ob
+      Das Objekt, das als Listener aus der Liste ausgetragen werden
+      soll
 
 
 BESCHREIBUNG
 ============
 
-   (Diese Funktionalitaet wurde ersetzt durch den allgemeinen Hook
-    H_HOOK_INSERT und ist nur noch aus Gruenden der Kompatibilitaet
-    vorhanden.)
-
-   Diese Funktion wird im Spielerobjekt aufgerufen, um ein als Listener
-   eingetragenes Hook-Objekt ob wieder auszutragen.
+   Diese Funktion wird im Spielerobjekt aufgerufen, um ein als
+   Listener eingetragenes Hook-Objekt ob wieder auszutragen.
 
 
 RUeCKGABEWERT
@@ -49,4 +42,4 @@
 
    NotifyInsert(), AddInsertHook(), QueryInsertHooks()
 
-Last modified: 14.04.2010, Arathorn
+Last modified: 18.10.2019 Zesstra
