diff --git a/doc/sphinx/lfun/ReceiveMultisense.rst b/doc/sphinx/lfun/ReceiveMultisense.rst
index cafa5bc..1c2666c 100644
--- a/doc/sphinx/lfun/ReceiveMultisense.rst
+++ b/doc/sphinx/lfun/ReceiveMultisense.rst
@@ -4,83 +4,74 @@
 FUNKTION
 --------
 
-  public int* ReceiveMultisense(struct msg_s* msgs,
-    string action = 0, int commontypes = 0)
-  
+  public void ReceiveMultisense(struct wave_s* msgs, string action = 0, int commontypes = 0)
+
 DEFINIERT IN
 ------------
 
   /std/living/comm.c
   /std/room/comm.c
-  /sys/living/comm.h
 
 ARGUMENTE
 ---------
 
-  struct msg_s* msgs
-    Die Auszugebenden Nachrichten mit Zusatzinformationen. (S.u.)
+  struct wave_s* msgs
+    Die auszugebenden Nachrichten mit Zusatzinformationen. (s.u.)
   string action
-    action wird als action an ReceiveMsg() weitergegeben.
+    action wird als <action> an ReceiveMsg() weitergegeben.
   int commontypes
-    Muss einen oder mehrere Veroderte messagetypes aus
+    Muss einen oder mehrere veroderte messagetypes aus
     :doc:`ReceiveMsg` enthalten. Diese werden bei jedem Aufruf von
-    :doc:`ReceiveMsg` mit dem jeweiligen Messagetyp aus msgs verodert.
+    :doc:`ReceiveMsg` mit dem jeweiligen Messagetyp aus <msgs> verodert.
 
 BESCHREIBUNG
 ------------
 
-  sendet die in msgs angegebenen Nachrichten an den Empfaenger, bis eine
-  zugestellt werden konnte oder das ende von msgs erreicht wurde.
+  Versucht, eine der in <msgs> angegebenen Nachrichten an den Empfaenger zuzustellen.
 
-  msgs ist aufgebaut wie folt:
-  Der struct msg_s ist in /std/living/comm_structs.c definiert. Er hat
-  die Eintraege string msg, int type, string prefix.
-  Das Array wird abgearbeitet, bis eine Nachricht zugestellt werden konnte
-  oder das Ende erreicht ist. msg wird vor der Ausgabe an
-  :doc:`../sefun/replace_personal` uebergeben, als erstes Objekt wird das aufrufende
-  Objekt uebergeben, als zweites this_player(), sofern vorhanden. msg wird
-  automatisch auf 78 Zeichen umgebrochen, vorhandene Zeilenumbrueche werden
-  dabei beibehalten. Fuer prefix findet keine Ersetzung statt.
+  Das Array <msgs> wird der Reihe nach abgearbeitet, bis eine Nachricht zugestellt werden konnte, das Ende von <msgs> erreicht wurde oder eine Nachricht *aus anderen Gruenden* als einem blockierten Sinn abgelehnt wurde. Der Grund fuer letzteres ist, dass andere Fehler von ReceiveMsg() (fast) immer auch bei allen (weiteren) Alternativen auftreten werden.
+
+  <msgs> ist ein Array von struct wave_s. Diese ist in /secure/simul_efun/comm.c definiert (und steht allen Programmen automatisch zur Verfuegung). Sie hat die Eintraege string msg, int type, string prefix.
+  wave_s.msg wird vor der Ausgabe von :doc:`../sefun/replace_personal` verarbeitet. Als erstes Objekt wird das aufrufende Objekt uebergeben, als zweites this_player(), sofern vorhanden. wave_s.msg wird automatisch auf 78 Zeichen umgebrochen, vorhandene Zeilenumbrueche werden dabei beibehalten. Fuer wave_s.prefix findet keine Ersetzung statt.
 
 RUECKGABEWERT
 -------------
 
-  Ein Integer-Array mit folgenden Werten:
+in Lebewesen
+^^^^^^^^^^^^
+  Der Rueckgabe ist der Rueckgabewert von ReceiveMsg() fuer die zuletzt versuchte Meldung.
 
-  0
-    Der Rueckgabewert von :doc:`../lfun/ReceiveMsg`.
-  1
-    Information, welche Meldung zugestellt wurde. -1 steht fuer keine
-    Meldung, ein wert >= 0 fuer die jeweilige Position in msgs.
+  Wenn dies einen Erfolg (MSG_DELIVERED, MSG_BUFFERED) darstellt, wurde irgendeine Meldung erfolgreich zugestellt.
+  Falls es MSG_SENSE_BLOCK ist, sind alle versuchten Sinne blockiert und keine Nachricht wurde zugestellt.
+  Ist es ein anderer Fehler ist, wurde keine Nachricht zugestellt (und ggf. nicht alle versucht).
 
-  Raeume definieren standardmaessig ebenfalls ein ReceiveMultisense(), welches in
-  jedem Objekt im Raum ReceiveMultisense() mit den uebergebenen Argumenten aufruft.
-  In diesem Fall ist der Rueckgabe der kleinste von allen gerufenen
-  ReceiveMultisense() zurueckgelieferte Wert.
+in Containern/Raeumen
+^^^^^^^^^^^^^^^^^^^^^
+
+  Die Funktion hat keinen Rueckgabewert. Der Grund hierfuer ist, dass dieser ein ggf. tief verschachteltes Mapping waere, was keiner mehr prueft.
 
 BEISPIEL
 --------
 
   .. code-block:: pike
 
-  inherit "/std/living/comm_structs";
   this_player().ReceiveMultisense(
     ({
-      (<msg_s>
+      (<wave_s>
         msg: "Ein Drache landet neben Dir.",
         type: MT_LOOK),
-      (<msg_s>
-        message: "Du hoerst ein rumpeln, als waere gerade etwas grosses "
+      (<wave_s>
+        message: "Du hoerst ein Rumpeln, als waere gerade etwas Grosses "
           "neben Dir eingeschlagen.",
         type: MT_LISTEN),
-      (<msg_s>
+      (<wave_s>
         msg: "Du spuerst einen heftigen Luftzug.",
         type: MT_FEEL)})
     MA_MOVE_IN);
-      
+
 SIEHE AUCH
 ----------
 
   :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`
 
-Letzte Aenderung: 07.10.2021, Bugfix
+Letzte Aenderung: 21.09.2022, Zesstra
diff --git a/doc/sphinx/lfun/ReceiveSay.rst b/doc/sphinx/lfun/ReceiveSay.rst
index 33ceee1..386aa7e 100644
--- a/doc/sphinx/lfun/ReceiveSay.rst
+++ b/doc/sphinx/lfun/ReceiveSay.rst
@@ -4,9 +4,9 @@
 FUNKTION
 --------
 
-  public int* ReceiveSay(string msg, string prefix = 0,
+  public void ReceiveSay(string msg, string prefix = previous_object().Name(WER, 1) + " sagt: ",
     struct msg_s sense_blocked =
-      ({(<msg_s>
+      ({(<wave_s>
         msg: "@WER1 bewegt die Lippen, Du hoerst jedoch nichts.",
         type: MT_LOOK)}))
 
@@ -15,56 +15,44 @@
 
   /std/living/comm.c
   /std/room/comm.c
-  /sys/living/comm.h
-  
+
 ARGUMENTE
 ---------
 
   string msg
-    Die auszugebende Meldung. Sie wird vor der Ausgabe an
-    :doc:`../sefun/replace_personal` uebergeben, als erstes Objekt wird das aufrufende
-    Objekt uebergeben, als zweites this_player(), sofern vorhanden. msg wird
-    automatisch auf 78 Zeichen umgebrochen, vorhandene Zeilenumbrueche werden
-    dabei beibehalten.
+    Die auszugebende Meldung.
   string prefix
-    prefix wird als prefix an :doc:`ReceiveMsg` weitergegeben. Eine
-    Ersetzung mittels :doc:`replace_personal` findet nicht statt.
-    Wird kein Wert uebergeben, wird
-    previous_object().Name(WER, 1) + " sagt: " verwendet. Hierzu muss Name()
-    am aufrufenden Objekt definiert sein und etwas sinnvolles zurueckgeben.
-  struct msg_s sense_blocked
-    Ersatzmeldungen fuer taube Spieler. enthaelt Structs vom Typ msg_s.
-    Dieser ist in /std/living/comm_structs.c definiert und enthaelt die
-    Eintraege string msg, int type, string prefix.
-    Das Array wird von vorne nach hinten
-    abgearbeitet, bis eine Nachricht zugestellt werden konnte oder das Ende
-    erreicht ist. Auch hier findet fuer msg eine Ersetzung mittels
-    :doc:`../sefun/replace_personal` statt, fuer prefix nicht.
+    prefix wird als prefix an :doc:`ReceiveMsg` weitergegeben. Wird kein Wert uebergeben, wird ``previous_object().Name(WER, 1) + " sagt: "`` verwendet.
+  struct wave_s \*alt
+    Ersatzmeldungen, falls das Lebewesen die Meldung aufgrund eines blockierten Sinns nicht wahrnehmen kann. Details siehe unten.
 
 BESCHREIBUNG
 ------------
 
-  Sendet msg per :doc:`ReceiveMsg` mit den ueblichen Argumenten von
-  "sage" an den Empfaenger. D.h.: MT_LISTEN, MA_SAY, Name(WER, 1) + " sagt: ". Hierzu
-  muss das aufrufende Objekt :doc:`name` definiert haben und dort
-  etwas sinnvolles zurueckgeben. Falls ein anderer prefix gewaehlt wurde,
-  wird dieser statt Name(WER, 1)  " sagt: " verwendet. 
+  Sendet msg per :doc:`ReceiveMsg` mit den ueblichen Argumenten von "sage" an den Empfaenger, d.h.: ``MT_LISTEN``, ``MA_SAY``, ``Name(WER, 1) + " sagt: "``.
+  Hierzu muss das aufrufende Objekt :doc:`Name` definiert haben und dort etwas sinnvolles zurueckgeben. Falls ein anderer Praefix gewaehlt wurde, wird dieser statt ``Name(WER, 1)  " sagt: "`` verwendet.
+
+  <msg> wird vor der Ausgabe an :doc:`../sefun/replace_personal` uebergeben, als erstes Objekt wird das aufrufende Objekt uebergeben, als zweites this_player(), sofern vorhanden. msg wird automatisch auf 78 Zeichen umgebrochen, vorhandene Zeilenumbrueche werden dabei beibehalten.
+
+  Falls der Empfaenger eine Nachricht aufgrund eines blockierten Sinns nicht empfangen kann (und **nur** dann), wird versucht, alternative Nachrichten aus dem Array <alt> zuzustellen. Dieses Array enthaelt structs vom Typ wave_s. Das Array wird von vorne nach hinten abgearbeitet, bis eine Nachricht erfolgreich zugestellt werden konnte, das Ende erreicht ist oder eine Nachricht *aus anderen Gruenden* als einem blockierten Sinn abgelehnt wurde. Der Grund fuer letzteres ist, dass andere Fehler von ReceiveMsg() (fast) immer auch bei allen (weiteren) Alternativen auftreten werden.
+  wave_s ist in /secure/simul_efun/comm.c definiert und enthaelt die Eintraege string msg, int type, string prefix. In <alt> ist der Default fuer wave_s.prefix 0!
+  Auch hier findet fuer wave_s.msg eine Ersetzung mittels :doc:`../sefun/replace_personal` statt, fuer wave_s.prefix nicht.
 
 RUECKGABEWERT
 -------------
 
-  Ein Integer-Array mit folgenden Werten:
+in Lebewesen
+^^^^^^^^^^^^
+  Der Rueckgabe ist der Rueckgabewert von ReceiveMsg() fuer die zuletzt versuchte Meldung.
 
-  0
-    Der Rueckgabewert von :doc:`../lfun/ReceiveMsg`.
-  1
-    Information, welche Meldung zugestellt wurde. -1 steht fuer msg, ein wert
-    >= 0 fuer die jeweilige Position in sense_blocked.
+  Wenn dies einen Erfolg (MSG_DELIVERED, MSG_BUFFERED) darstellt, wurde irgendeine Meldung erfolgreich zugestellt.
+  Falls es MSG_SENSE_BLOCK ist, sind alle versuchten Sinne blockiert und keine Nachricht wurde zugestellt.
+  Ist es ein anderer Fehler ist, wurde keine Nachricht zugestellt (und ggf. nicht alle aus <alt> versucht).
 
-  Raeume definieren standardmaessig ebenfalls ein ReceiveSay(), welches in
-  jedem Objekt im Raum ReceiveSay() mit den uebergebenen Argumenten aufruft.
-  In diesem Fall ist der Rueckgabe der kleinste von allen gerufenen
-  ReceiveSay() zurueckgelieferte Wert.
+in Containern/Raeumen
+^^^^^^^^^^^^^^^^^^^^^
+
+  Die Funktion hat keinen Rueckgabewert. Der Grund hierfuer ist, dass dieser ein ggf. tief verschachteltes Mapping waere, was keiner mehr prueft.
 
 BEISPIEL
 --------
@@ -77,16 +65,16 @@
     "Das hast Du prima gemacht, @WER2!",
     Name(WER, 1) + " lobt Dich: ",
     ({
-      (<message_> 
+      (<wave_s>
         msg: "@WER1 nickt Dir laechelnd zu.",
         type: MT_LOOK),
-      (<msg_s> 
+      (<wave_s>
         msg: "Jemand klopft Dir lobend auf die Schulter.",
         type: MT_FEEL)}));
 
 SIEHE AUCH
 ----------
 
-  :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`, :doc:`name`
+  :doc:`ReceiveMsg`, :doc:`../sefun/replace_personal`, :doc:`Name`
 
-Letzte Aenderung: 07.10.2021, Bugfix
+Letzte Aenderung: 21.09.2022, Zesstra
