diff --git a/doc/sphinx/lfun/ReceiveWave.rst b/doc/sphinx/lfun/ReceiveWave.rst
new file mode 100644
index 0000000..d19b9bc
--- /dev/null
+++ b/doc/sphinx/lfun/ReceiveWave.rst
@@ -0,0 +1,66 @@
+ReceiveWave()
+=============
+
+FUNKTION
+--------
+
+  public int ReceiveWave(struct wave_s wave, string msg_action = comm_guess_action(), object origin = previous_object());
+
+DEFINIERT IN
+------------
+
+  /std/living/comm.c
+
+ARGUMENTE
+---------
+
+  struct wave_s* wave
+    Die auszugebende Nachrichten mit Zusatzinformationen. (s.u.)
+  string action
+    action wird als <action> an ReceiveMsg() weitergegeben
+  object origin
+    Absenderobjekt der Nachricht (Default: previous_object())
+
+BESCHREIBUNG
+------------
+
+  Sendet die in <wave> angegebene Nachricht an den Empfaenger.
+
+  <wave> ist meist eine struct wave_s. Diese fasst msg, msg_type und prefix fuer ReceiveMsg in eine Datenstruktur zusammen. Sie 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> kann jedoch auch eine von wave_s erbende struct sein, welche zusaetzliche Eintraege besitzt (die hier nicht benutzt werden). Damit kann man die Meldung mit anderen dazu gehoerenden Daten zusammenfassen.
+
+
+RUECKGABEWERT
+-------------
+
+  Der Rueckgabe ist der Rueckgabewert von ReceiveMsg().
+
+BEISPIEL
+--------
+
+  .. code-block:: pike
+
+  // Einfache Nachricht
+  this_player().ReceiveWave((<wave_s> msg: "Pass auf! Ein boeser, schwarzer Drache!",
+                                      type: MT_LISTEN, prefix: "Humni ruft: ") );
+  // von wave_s abgeleitete struct, welche einen einfach Zauberspruch beschreibt
+  struct spell_s (wave_s) {
+      int dam;
+      string* dam_type;
+      mapping si_spell;
+  }
+  struct spell_s sp = (<spell_s> msg: "Der Zauberer schleudert Dir einen Blitz entgegen.",
+                       type: MT_LOOK|MT_FEEL, dam: 42, dam_type: DT_LIGHTNING,
+                       sinfo: ([...]));
+  en.ReceiveWave(sp, MA_COMBAT);
+  en.Defend(sp.dam, sp.dam_type, sp.si_spell);
+
+
+SIEHE AUCH
+----------
+
+  :doc:`ReceiveMsg`, :doc:`ReceiveDynWave`
+
+Letzte Aenderung: 30.07.2025, Zesstra
+
