diff --git a/doc/lfun/Set b/doc/lfun/Set
index bef7161..7667eba 100644
--- a/doc/lfun/Set
+++ b/doc/lfun/Set
@@ -1,4 +1,3 @@
-
 Set()
 *****
 
@@ -6,7 +5,8 @@
 FUNKTION
 ========
 
-   public varargs mixed Set(string name, mixed Value, int Type, int extern);
+   public mixed Set(string name, mixed Value,
+               int Type = F_VALUE, int drop_priv = extern_call())
 
 
 DEFINIERT IN
@@ -19,11 +19,11 @@
 ARGUMENTE
 =========
 
-    name - Property, die manipuliert werden soll
-    Value - der zu setzende/aendernde Wert
-    Type - die Eigenschaft der Property, die manipuliert werden soll
-    extern - Interne Verwendung:
-   Wurde Set ueber SetProp von aussen gerufen.
+   name - Property, die manipuliert werden soll
+   Value - der zu setzende/aendernde Wert
+   Type - die Eigenschaft der Property, die manipuliert werden soll
+   drop_priv - Interne Verwendung, wenn Aufrufer Privilegien abgibt,
+               z.B. objekt-interner Aufruf extern zaehlen soll.
 
 
 BESCHREIBUNG
@@ -67,29 +67,14 @@
 
          Property nicht mehr ueber SetProp() aenderbar
          (damit entfallen auch SET_METHOD, _set_'name')
-
-       SETMAPPED
-
-         Die Set-Methode speichert den Werte nicht selber, sondern gibt
-         ihn zurueck, das Property-System speichert ihn dann.
-         WARNUNG: Dieses Flag nicht per Hand manipulieren.
-  
    F_SET_METHOD
      Aendert den Eintrag fuer eine SetMethod - eine Closure, die anstatt
      des Setzens der Property beim Aufruf von SetProp mit 'Value'
      aufgerufen wird.
-   F_SET_MAPPER
-     Setzt wie F_SET_METHOD eine Set-Methode (Closure), welche aber den Wert
-     der Property beim Aufruf nicht selber (durch Aufruf von Set()) setzt,
-     sondern den Wert zurueckgeben muss, der gesetzt werden soll.
-     Bsp. #'copy um vor dem Speichern eine Kopie zu erstellen
    F_QUERY_METHOD
      Aendert den Eintrag fuer eine QueryMethod - eine Closure, die anstatt
      des Lesens der Property beim Aufruf von QueryProp aufgerufen wird.
-     Diese bekommt den gespeicherten Wert der Property uebergeben und muss
-     den an den Aufrufer von QueryProp() zurueckzugebenden Wert
-     zurueckgeben.
-     Bsp: #'copy, um eine Kopie des gespeicherten Wertes zurueckzugeben
+
 
 RUeCKGABEWERT
 =============
@@ -142,7 +127,9 @@
    // Loeschen des SAVE-Flags
    Set(P_XYZ, SAVE, F_MODE_AD);
 
-   // Negieren (Umschalten) des bisherigen SAVE-Flags
+
+
+   // Negieren des bisherigen SAVE-Flags
    Set(P_XYZ, SAVE, F_MODE);
    // Hinweis: das Setzen des Flags funktioniert mittels F_MODE nur dann,
    // wenn sichergestellt ist, dass es vorher nicht gesetzt war. Die
@@ -170,12 +157,6 @@
    other->Set(P_XYZ, #'bar, F_QUERY_METHOD);
    ...
 
-   // Setzen/Nutzen eines Mappers (F_SET_MAPPER) zum Skalieren
-   int scale(int val) {return val * 100;}
-   Set(P_XYZ, #'scale, F_SET_MAPPER);
-   int unscale(int val) {return val / 100;}
-   Set(P_XYZ, #'unscale, F_QUERY_METHOD);
-
    // Der Vollstaendigkeit halber sei das Aendern einer Property unter
    // Umgehung von Set-Methoden angegeben. Es ist aber aus o.g. Gruenden
    // zu empfehlen, diese Variante nicht zu verwenden.
@@ -190,4 +171,4 @@
    Konzept:  properties, /std/thing/properties.c
    Sonstiges:  P_AUTOLOADOBJ
 
-6. Jan 2008 Arathorn
+8.9.2021, Zesstra
