diff --git a/std/living/comm.c b/std/living/comm.c
index ccfe92b..b79915a 100644
--- a/std/living/comm.c
+++ b/std/living/comm.c
@@ -8,8 +8,6 @@
 #pragma no_clone
 #pragma range_check
 
-inherit "/std/living/comm_structs";
-
 #include <defines.h>
 #include <thing/language.h>
 #define NEED_PROTOTYPES
@@ -142,8 +140,8 @@
 
 // Wrapper fuer ReceiveMsg()
 public int* ReceiveSay(string msg, string prefix = 0,
-  struct msg_s* sense_blocked =
-    ({(<msg_s> 
+  struct wave_s* sense_blocked =
+    ({(<wave_s> 
       msg: "@WER1 bewegt die Lippen, Du hoerst jedoch nichts.",
       type: MT_LOOK)}))
 {
@@ -203,7 +201,7 @@
     previous_object().Name(WER, 1) + "teilt Dir mit: ");
 }
 
-public int* ReceiveMultisense(struct msg_s* msgs,
+public int* ReceiveMultisense(struct wave_s* msgs,
     string action = 0, int commontypes = 0)
 {
   int* res = ({0, -1});
diff --git a/std/living/comm_structs.c b/std/living/comm_structs.c
deleted file mode 100644
index 5105dbd..0000000
--- a/std/living/comm_structs.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#pragma strict_types, save_types, pedantic, range_check
-#pragma no_clone
-
-protected struct msg_s
-{
-  string msg;
-  int type;
-  string prefix;
-};
diff --git a/std/player/comm_structs.c b/std/player/comm_structs.c
index c0b3322..78a0d1a 100644
--- a/std/player/comm_structs.c
+++ b/std/player/comm_structs.c
@@ -9,12 +9,10 @@
 #pragma no_clone
 #pragma range_check
 
-inherit "/std/living/comm_structs";
-
 // Struct fuer im Kobold, im Comm-Vault und in der TM-History gespeicherte
 // Nachrichten.
-// Basiert auf allgemeiner msg_s Struktur aus living/comm-structs.c
-struct kobold_msg_s (msg_s) {
+// Basiert auf allgemeiner wave_s Struktur aus /secure/simul_efun/comm.c
+struct kobold_msg_s (wave_s) {
   string action;    // Messageaction fuer ReceiveMsg
   string sendername;// Ursprung der Nachricht
   int timestamp;    // Zeitstempel der Nachricht
diff --git a/std/room/comm.c b/std/room/comm.c
index 3f2516b..ae57bbe 100644
--- a/std/room/comm.c
+++ b/std/room/comm.c
@@ -1,8 +1,6 @@
 #pragma strict_types, save_types, pedantic, range_check
 #pragma no_clone
 
-inherit "/std/living/comm_structs";
-
 #include <thing/language.h>
 
 // Per Default nur an alle Items im Inventar weiterleiten.
@@ -32,7 +30,7 @@
 // Wrapper fuer ReceiveMsg()
 
 public varargs int* ReceiveSay(string msg, string prefix,
-  struct msg_s sense_blocked)
+  struct wave_s sense_blocked)
 {
   // Das muss schon hier passieren, damit previous_object() stimmt
   if(!prefix)
@@ -44,7 +42,7 @@
   return _minarr(res);
 }
 
-public varargs int* ReceiveMultisense(struct msg_s msgs,
+public varargs int* ReceiveMultisense(struct wave_s msgs,
   string action, int commontypes)
 {
   int** res = ({int**})all_inventory()->ReceiveMultisense(msgs, action, commontypes);
