diff --git a/std/living/comm.c b/std/living/comm.c
index 61c5b70..812ea6f 100644
--- a/std/living/comm.c
+++ b/std/living/comm.c
@@ -138,8 +138,42 @@
   return MT_LOOK;
 }
 
+// ReceiveMsg() wird in <player/comm.c> und <npc/comm.c> implementiert und ist
+// hier nicht erforderlich (Cross-Defintion von LPC sei Dank).
+//public varargs int ReceiveMsg(string msg, int msg_type, string msg_action,
+//                              string msg_prefix, object origin)
+//{}
+
+
 // Wrapper fuer ReceiveMsg()
 
+// Bekommt ein wave_s oder davon geerbte Struct uebergeben, welche daher
+// mindestens Nachricht, Typ und Prefix enthaelt. Ist ansonsten
+// funktionsgleich zu ReceiveMsg().
+public int ReceiveWave(struct wave_s wave, string msg_action, object origin)
+{
+  if (!wave) return MSG_FAILED;
+  return ReceiveMsg(wave.msg, wave.type, msg_action, wave.prefix,
+                    origin);
+}
+
+// Bekommt ein wave_s oder davon geerbte Struct uebergeben, welche daher
+// mindestens Nachricht, Typ und Prefix enthaelt. Wird ein wave_dyn_s
+// uebergeben und ist das <cl>-Element eine Closure, wird diese ausgewertet
+// und kann Nachricht, Typ und Prefix veraendern. Ansonsten ist diese Funktion
+// funktionsgleich zu ReceiveWave().
+public int ReceiveDynWave(struct wave_s wave, string msg_action, object origin)
+{
+  if (!wave) return MSG_FAILED;
+  // Falls ein wave_dyn_s uebergeben wurde, ist ein Element cl enthalten und
+  // -> gibt das zurueck. ( . funktioniert nicht, weil der Compiler von einem
+  // wave_s ausgeht.
+  if (closurep(wave->cl))
+      wave = funcall(wave->cl, wave);
+  return ReceiveMsg(wave.msg, wave.type, msg_action, wave.prefix,
+                    origin);
+}
+
 public int ReceiveNotify(string msg, string action)
 {
   // Da MT_NOTIFICATION immer zugestellt wird, ist keine Fehlerbehandlung
