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
