diff --git a/doc/sphinx/lfun/RemoveSensitiveObject.rst b/doc/sphinx/lfun/RemoveSensitiveObject.rst
new file mode 100644
index 0000000..f67224f
--- /dev/null
+++ b/doc/sphinx/lfun/RemoveSensitiveObject.rst
@@ -0,0 +1,79 @@
+RemoveSensitiveObject()
+=======================
+
+FUNKTION
+--------
+::
+
+     void RemoveSensitiveObject(object ob)
+
+DEFINIERT IN
+------------
+::
+
+     /std/container/inventory.c
+     generalizes /std/living/inventory.c
+
+ARGUMENTE
+---------
+::
+
+     ob - zu entfernendes Objekt
+
+BESCHREIBUNG
+------------
+::
+
+     Entfernt ob aus den Benachrichtigungslisten des Containers.
+     Wird von thing/moving.c im alten Environment gerufen, wenn
+     P_SENSITIVE gesetzt ist.
+     Ruft dazu RemoveSensitiveObjectFromList().
+
+BEMERKUNGEN
+-----------
+::
+
+     Setzt man P_SENSITIVE nicht als Default sondern situationsabhaengig,
+     dann muss man auch RemoveSensitiveObject im Environment
+     auch selbst rufen!
+
+BEISPIEL
+--------
+::
+
+     // Fackel (inheriting lightsource)
+     void create() {
+     ...
+       SetProp(P_SENSITIVE,
+        ({({SENSITIVE_INVENTORY_TRIGGER,DT_FIRE,120})}));
+     ...
+     }
+
+     // wenn die Fackel geloescht wird, verliert sie ihre aktive
+     // Eigenschaft und muss das dem environment() mitteilen
+     static int extinguish(string str) {
+      int i;
+      i=::extinguish(str);
+      if(i && QueryProp(P_LIGHT)<=0) {
+       SetProp(P_SENSITIVE,0);
+       if(environment())
+        environment()->RemoveSensitiveObject(this_object());
+      }
+      return i;
+     }
+
+     - empfindliche Objekte wie Eiszapfen koennen jetzt wieder gefahrlos
+       in das selbe environment() bewegt werden
+
+SIEHE AUCH
+----------
+::
+
+     P_SENSITIVE
+     InsertSensitiveObject
+     insert_sensitive_inv_trigger, insert_sensitive_inv
+     P_SENSITIVE_ATTACK, P_SENSITIVE_INVENTORY, P_SENSITIVE_INVENTORY_TRIGGER
+     CheckSensitiveAttack
+
+25.Apr.2001, Gloinson@MG
+
