diff --git a/doc/sphinx/lfun/InsertSensitiveObject.rst b/doc/sphinx/lfun/InsertSensitiveObject.rst
new file mode 100644
index 0000000..e8f06f0
--- /dev/null
+++ b/doc/sphinx/lfun/InsertSensitiveObject.rst
@@ -0,0 +1,68 @@
+InsertSensitiveObject()
+=======================
+
+FUNKTION
+--------
+::
+
+     void InsertSensitiveObject(object ob, mixed *arg)
+
+DEFINIERT IN
+------------
+::
+
+     /std/container/inventory.c
+     generalizes /std/living/inventory.c
+
+BESCHREIBUNG
+------------
+::
+
+     Fuegt "ob" in die Benachrichtigungslisten des Containers ein.
+     Wird von thing/moving.c im Ziel-Environment gerufen, wenn
+     P_SENSITIVE gesetzt ist.
+
+BEMERKUNGEN
+-----------
+::
+
+     Setzt man P_SENSITIVE nicht als Default sondern situationsabhaengig,
+     dann muss man auch InsertSensitiveObject() im Environment
+     auch selbst rufen!
+
+BEISPIEL
+--------
+::
+
+     // Fackel (inheriting lightsource)
+     // wenn angezuendet, aendert es die Eigenschaften und wird zum
+     // aktiven Objekt - das muss man dem environment() mitteilen
+     static int light(string str) {
+      int i;
+      i=::light(str);
+      if(i && QueryProp(P_LIGHT)>0) {
+       SetProp(P_SENSITIVE,
+        ({({SENSITIVE_INVENTORY_TRIGGER,DT_FIRE,120})}));
+       if(environment())
+        environment()->InsertSensitiveObject(this_object(),
+					     QueryProp(P_SENSITIVE));
+      }
+      return i;
+     }
+
+     - falls ein empfindliches Objekt im environment() ist, dann wird
+       in diesem nun eventuell (Treshold) trigger_sensitive_inv()
+       gerufen
+
+SIEHE AUCH
+----------
+::
+
+     P_SENSITIVE
+     RemoveSensitiveObject
+     insert_sensitive_inv_trigger, insert_sensitive_inv
+     P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY, P_SENSITIVE_INVENTORY_TRIGGER
+     CheckSensitiveAttack
+
+25.Apr.2001, Gloinson@MG
+
