diff --git a/doc/sefun/process_string b/doc/sefun/process_string
index fbc7018..4d72259 100644
--- a/doc/sefun/process_string
+++ b/doc/sefun/process_string
@@ -8,41 +8,43 @@
 FUNKTION
 ========
 
-   string process_string(string str)
-   string process_string(closure cl)
+   string process_string(string str) string process_string(closure cl)
 
 
 BESCHREIBUNG
 ============
 
-   Durchsucht den String str nach Vorkommnissen von Substrings, die "Wert
-   durch Funktionsaufruf zu ersetzen" andeuten. Die Form ist: @@, gefolgt
-   durch einen impliziten Funktionsaufruf.
+   Beschreibung s. efun/process_string.
 
-   Der zu ersetzenden Substring hat die Form:
-   @@function[:filename][|argument1|argument2]@@
+   Abweichend zu der Beschreibung gibt es im MG folgende wichtige
+   Punkte:
 
-   Die entsprechende Funktion muss einen String zurueckgeben, oder der
-   process_string() uebergebene String str wird nicht modifiziert.
+   * nicht in neuem Code nutzen, aus altem Code ausbauen
 
-   process_string() arbeitet nicht rekursiv, object_name und argument sind
-   optionale Werte.
+   * nicht nutzbar fuer Objekte mit einer UID mit einem Level > 30.
 
-   Falls eine Closure angegeben wurde, wird diese lediglich gerufen
-   und nicht gefiltert.
+   * nicht rufbar durch Magiershells
 
+   * kann Funktionen in anderen Objekten nur rufen, wenn diese zum
+     gleichen Magier gehoeren.
 
-ANMERKUNGEN
-===========
+   Folgendes Properties und Details werden bei der Abfrage ueber
+   process_string() gefiltert:
 
-   - Die Funktion, die gerufen werden soll, _muss_ mit einem Buchstaben
-                 anfangen, '_' ist nicht moeglich!
-   - folgendes Properties und Details werden bei der Abfrage ueber
-     process_string() gefiltert:
-     P_LONG, P_SHORT, P_READ_MSG, AddReadDetail()-Details und NPC-Chats
-     P_INT_LONG ueber int_long(), P_INT_SHORT ueber int_short()
-   - die Nutzung kann zu Sicherheitsproblemen fuehren, siehe auch
-     process_call()
+   * P_LONG
+
+   * P_SHORT
+
+   * Details
+
+   * NPC-Chats
+
+   * P_INT_LONG
+
+   * P_INT_SHORT
+
+   Die Nutzung kann zu Sicherheitsproblemen fuehren, siehe auch
+   process_call().
 
 
 BEISPIEL
@@ -58,7 +60,6 @@
 
    -> bei Abfrage: "Die Beschreibung." oder "Die andere Beschreibung."
 
-
    // Teilersetzung
    SetProp(P_SHORT, "Ein @@farbenfun|huebsch@@ Ding");
    ...
@@ -72,6 +73,6 @@
 SIEHE AUCH
 ==========
 
-   notify_fail(E), process_call(E), replace_personal(E)
+   process_call(), replace_personal()
 
-22. Nov. 2006 Arathorn
+02.09.2020 Zesstra
diff --git a/doc/sefun/replace_personal b/doc/sefun/replace_personal
index 3804be3..a8946e5 100644
--- a/doc/sefun/replace_personal
+++ b/doc/sefun/replace_personal
@@ -47,8 +47,6 @@
 
    x steht fuer die Position des Objekts/Strings in *obs, beginnend bei 1.
 
-
-
    Besonderheiten beim Possessivpronomen (@WERQPPGNx):
    G muss durch das Geschlecht (M, F oder N) und N durch den Numerus (S
    oder P) ersetzt werden.
@@ -62,47 +60,45 @@
 
    durchersetzter String
 
+
 Beispiele
+=========
 
-   replace_personal("@WER1", ({find_player("gloinson")})) ==
-   "Gloinson"
+   replace_personal("@WER1", ({find_player("gloinson")})) ==> "Gloinson"
 
-   replace_personal("@WEMQP1", ({find_player("gloinson")})) == "ihm"
+   replace_personal("@WEMQP1", ({find_player("gloinson")})) ==> "ihm"
 
-   // unbestimmter und bestimmter Artikel: replace_personal("@WER1
-   zueckt @WENU2 und verhaut @WEN3.",
+   // unbestimmter und bestimmter Artikel:
+   replace_personal("@WER1 zueckt @WENU2 und verhaut @WEN3.",
+                    ({find_player("gloinson"),
+                      find_object("/obj/mpa"),
+                      find_object("/obj/wanderer")}))
+   ==> "Gloinson zueckt eine Zeitung und verhaut den Wanderer."
 
-      ({find_player("gloinson"),
-         find_object("/obj/mpa"), find_object("/obj/wanderer")}))
-
-   == "Gloinson zueckt eine Zeitung und verhaut den Wanderer."
-
-   // Beim Possessivpronomen beziehen sich WEN, F und P (Akkusativ, //
-   Femininum, Plural) auf die Taschen, nicht auf Kessa:
+   // Beim Possessivpronomen beziehen sich WEN, F und P (Akkusativ,
+   // Femininum, Plural) auf die Taschen, nicht auf Kessa:
    replace_personal("@WER1 steckt @WESSEN2 Turnschuhe in @WENQPPFP1 "
+                    "Taschen.",
+                    ({find_player("kessa"),
+                      find_player("gloinson")}))
+   ==> "Kessa steckt Gloinsons Turnschuhe in ihre Taschen."
 
-      "Taschen.", ({find_player("kessa"),
-
-         find_player("gloinson")}))
-
-   == "Kessa steckt Gloinsons Turnschuhe in ihre Taschen."
-
-   // Ein Beispiel mit laengerem >>*<<obs: replace_personal("@WER1
-   zieht @WENQPPMP1 neuen Turnschuhe an. @WER2 ist "
-
-      "so beeindruckt, dass @WERQP2 @WEMQP1 @WENU3 auf die " "@WEN4
-      haut und die Schuhe in @WEMQPPFS2 Tasche " "verschwinden laesst.
-      @WERU5 schaut zu und kichert " "irre. Wenn das @WER6 gesehen
-      haette!", ({find_player("gloinson"),
-
-         find_player("kessa"), find_object("/obj/mpa"), "Birne",
-         find_object("/obj/wanderer"), find_netdead("jof")}),1)
-
-   == "Gloinson zieht seine neuen Turnschuhe an. Kessa ist so
-   beeindruckt, "
-      "dass sie ihm eine Zeitung auf die Birne haut und die Schuhe in
-      ihrer " "Tasche verschwinden laesst. Ein Wanderer schaut zu und
-      kichert " "irre. Wenn das Jof gesehen haette!"
+   // Ein Beispiel mit laengerem *obs:
+   replace_personal("@WER1 zieht @WENQPPMP1 neuen Turnschuhe an. @WER2 ist "
+                    "so beeindruckt, dass @WERQP2 @WEMQP1 @WENU3 auf die "
+                    "@WEN4 haut und die Schuhe in @WEMQPPFS2 Tasche "
+                    "verschwinden laesst. @WERU5 schaut zu und kichert "
+                    "irre. Wenn das @WER6 gesehen haette!",
+                    ({find_player("gloinson"),
+                      find_player("kessa"),
+                      find_object("/obj/mpa"),
+                      "Birne",
+                      find_object("/obj/wanderer"),
+                      find_netdead("jof")}),1)
+   ==> "Gloinson zieht seine neuen Turnschuhe an. Kessa ist so "
+       "beeindruckt, dass sie ihm eine Zeitung auf die Birne haut und die "
+       "Schuhe in ihrer Tasche verschwinden laesst. Ein Wanderer schaut "
+       "zu und kichert irre. Wenn das Jof gesehen haette!"
 
 
 SIEHE AUCH
diff --git a/doc/sefun/send_debug b/doc/sefun/send_debug
new file mode 100644
index 0000000..f47b748
--- /dev/null
+++ b/doc/sefun/send_debug
@@ -0,0 +1,45 @@
+
+send_debug()
+************
+
+
+FUNKTION
+========
+
+   varargs void send_debug(object|string wiz, string msg, string
+   msg_prefix)
+
+
+BESCHREIBUNG
+============
+
+   Sendet <msg> via ReceiveMsg() an das Spielerobjekt <wiz> (wenn es
+   als string angegeben wird, wird es per find_player gesucht).
+   Hierbei wird mit dem Nachrichtentyp MT_DEBUG gesendet, d.h. die
+   Meldung wird nur angezeigt, wenn das Spielerobjekt Magier oder
+   Testspieler mit aktiviertem P_WIZ_DEBUG ist.
+
+   Magier koennen P_WIZ_DEBUG mit dem Kommando 'mschau' umschalten,
+   Testspieler benoetigen hierfuer einen Magier.
+
+   Diese Debugmeldungen koennten sehr praktisch sein, aber man sollte
+   es in produktivem Code auch nicht uebertreiben, auch wenn keine
+   Ausgabe an Spieler erfolgt, wird die Zustellung jedoch bei jedem
+   Aufruf zumindest geprueft.
+
+
+BEISPIEL
+========
+
+      send_debug("zesstra", "Verbrauchte evalcosts: 42");
+
+      send_debug(this_player(), "Verbrauchte evalcost: 42",
+                 "Unit-Debug: ");
+
+
+SIEHE AUCH
+==========
+
+   ReceiveMsg()
+
+14.10.2020, Zesstra
