diff --git a/doc/lfun/PreventInsert b/doc/lfun/PreventInsert
index 3635142..e58e827 100644
--- a/doc/lfun/PreventInsert
+++ b/doc/lfun/PreventInsert
@@ -19,7 +19,7 @@
 =========
 
    ob
-        Das Objekt, das in den Behaelter eingefuegt werden soll.
+      Das Objekt, das in den Behaelter eingefuegt werden soll.
 
 
 BESCHREIBUNG
@@ -28,44 +28,49 @@
    Mit dieser Funktion kann ein Behaelter pruefen, ob er das Objekt ob
    aufnehmen moechte oder nicht.
 
+   Man beachte bitte, dass nach dieser Funktion *nicht* garantiert
+   ist, dass das Objekt wirklich bewegt wird, es handelt sich
+   lediglich um die Abfrage der Erlaubnis! Die Bewegung kann aus einer
+   Vielzahl an Gruenden noch abgebrochen werden.
+
+   Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsert()
+   zwar aufgerufen, aber das Ergebnis ignoriert, d.h. die Aufnahme
+   kann in dem Fall nicht verhindert werden.
+
 
 RUeCKGABEWERT
 =============
 
-   0, wenn das Objekt aufgenommen werden kann; ein Wert groesser als 0
-   zeigt an, dass das Objekt nicht aufgenommen werden soll.
+   0
+      wenn das Objekt aufgenommen werden kann;
 
-
-BEMERKUNGEN
-===========
-
-   Wenn ob mit dem Flag M_NOCHECK bewegt wird, wird PreventInsert() zwar
-   aufgerufen, das Objekt wird jedoch auf jeden Fall in den Behaelter
-   bewegt, unabhaengig vom Rueckgabewert!
+   > 0
+      ein Wert groesser als 0 zeigt an, dass das Objekt nicht
+      aufgenommen werden soll.
 
 
 BEISPIELE
 =========
 
-   Um zu verhindern, dass man Geld in einen Behaelter stecken kann, sollte
-   man wie folgt vorgehen:
+   Um zu verhindern, dass man Geld in einen Behaelter stecken kann,
+   sollte man wie folgt vorgehen:
 
-   varargs int PreventInsert(object ob)
-   {
-     // Wenn es Geld ist, erheben wir sofort Einspruch
-     if (ob->id("geld"))
-       return 1;
-     // Ansonsten koennte ein ererbtes Objekt noch Einspruch erheben!
-     else
-       return ::PreventInsert(ob);
-   }
+      public int PreventInsert(object ob)
+      {
+        // Wenn es Geld ist, erheben wir sofort Einspruch
+        if (ob->id("geld"))
+          return 1;
+        // Ansonsten koennte ein ererbtes Objekt noch Einspruch erheben!
+        else
+          return ::PreventInsert(ob);
+      }
 
 
 SIEHE AUCH
 ==========
 
    PreventLeave(), NotifyInsert(), NotifyLeave(), MayAddObject(),
-   PreventInsertLiving(), PreventLeaveLiving(), NotifyMove(),
-   PreventMove(), MayAddWeight(), move(), /std/container/restrictions.c
+   MayAddWeight(), PreventInsertLiving(), PreventLeaveLiving(),
+   NotifyMove(), PreventMove(), move(), /std/container/restrictions.c
 
-Last modified: Sat Dec 18 02:00:00 1999 by Tiamak
+Last modified: 30.01.2020, Zesstra
