diff --git a/doc/lfun/RemoveExtraLook b/doc/lfun/RemoveExtraLook
index 0369992..1bcde43 100644
--- a/doc/lfun/RemoveExtraLook
+++ b/doc/lfun/RemoveExtraLook
@@ -2,11 +2,11 @@
 RemoveExtraLook()
 *****************
 
-RemoveExtraLook()
 
+FUNKTION
+========
 
-int RemoveExtraLook(string look);
-=================================
+int RemoveExtraLook(string key);
 
 
 DEFINIERT IN
@@ -15,51 +15,78 @@
    /std/living/description.c
 
 
+ARGUMENTE
+=========
+
+   * string key: Schluessel, unter dem der Extralook registriert
+     wurde ODER Objektname des registrierenden Objektes
+
+
 BESCHREIBUNG
 ============
 
    Der Extralook erscheint in der Langbeschreibung des Lebewesens.
-   Eintraege koennen mit dieser Funktion (vorzeitig) wieder entfernt werden.
 
-
-ARGUMENTE
-=========
-
-   - string look:
-     Schluesselwort, unter dem der Eintrag, den man entfernen moechte, von
-     AddExtraLook() registriert wurde.
-
-
-RUECKGABEWERTE
-==============
-
-   > 0, falls der Eintrag erfolgreich entfernt wurde.
-   < 0 sonst.
-     -1: keinen (gueltigen) <key> uebergeben.
-     -2: kein Eintrag fuer <key> gefunden.
+   Eintraege koennen mit dieser Funktion (vorzeitig) wieder entfernt
+   werden. Dazu wird entweder der selbst festgelegte Schluessel oder
+   der implizite Schluessel *object_name()* des setzenden Objekts
+   benoetigt.
 
 
 BEMERKUNGEN
 ===========
 
-   Beim Entfernen mit dieser Funktion wird die "Endemeldung" des entfernten
-   Eintrages nicht ausgegeben.
+   Beim Entfernen mit dieser Funktion wird die "Endemeldung" des
+   entfernten Eintrages nicht ausgegeben.
+
+
+RUECKGABEWERTE
+==============
+
+   Siehe auch /sys/living/description.h fuer Konstanten.
+
+   * 1, falls der Eintrag erfolgreich entfernt wurde.
+
+   * < 0 sonst.
+
+     * -1: keinen (gueltigen) <key> uebergeben.
+
+     * -2: kein Eintrag fuer <key> gefunden.
 
 
 BEISPIELE
 =========
 
-   # Extralook registrieren.
-   living->AddExtraLook("@WER1 wird von einer Horde Daemonen verfolgt.",
-                        "ennox_daemonenhordenverfolgerlook");
-   # Nun kann der Eintrag auch wieder entfernt werden:
+   // (1) Loeschen ueber expliziten Key
+   living->AddExtraLook(
+     "@WER1 wird von einer Horde Daemonen verfolgt.",
+     1800, "ennox_daemonenhordenverfolgerlook");
+
+   // Nun kann der Eintrag auch wieder entfernt werden:
    living->RemoveExtraLook("ennox_daemonenhordenverfolgerlook");
 
+   // (2) Loeschen ueber impliziten Objektnamen-Schluessel
+   living->AddExtraLook("Eine Sonnenblume ragt aus dem Ohr.")
+   // das ist nur aus dem gleichen Objekt heraus moeglich:
+   living->RemoveExtraLook(0);
+
+   // (3) Loeschen ueber impliziten Objektnamen-Schluessel
+   string implizite_id = object_name(this_object());
+   living->AddExtraLook("Eine Sonnenblume ragt aus dem Ohr.")
+   // diese ID kann man natuerlich durch die Gegend schicken
+   living->RemoveExtraLook(implizite_id);
+
 
 SIEHE AUCH
 ==========
 
-   AddExtraLook(),
-   P_INTERNAL_EXTRA_LOOK
+   Verwandt:
+      *AddExtraLook()*, *P_INTERNAL_EXTRA_LOOK*
 
-14.05.2007, Zesstra
+   Sonstiges:
+      *replace_personal()*, *break_string()*
+
+   Fuer Spielerobjekte:
+      *P_EXTRA_LOOK*
+
+15. Jun 2017 Gloinson
