diff --git a/doc/sphinx/lfun/ReceiveMsg.rst b/doc/sphinx/lfun/ReceiveMsg.rst
index 2b2ff65..457235b 100644
--- a/doc/sphinx/lfun/ReceiveMsg.rst
+++ b/doc/sphinx/lfun/ReceiveMsg.rst
@@ -48,6 +48,8 @@
        MT_LOOK nur an Nichtblinde
        MT_LISTEN nur an Nichttaube
        MT_DEBUG nur an Magier/Testspieler
+       Bei gesetztem MSG_ALL_SENSES muessen alle fuer die angegebenen Typen
+       relevanten Sinne des Empfaengers benutzbar sein, nicht nur einer.
     2) Pruefen auf Ignorieren von
        - Aktion ('msg_action')
          - mit 'msg_action' || query_verb()
@@ -226,6 +228,8 @@
       MSG_DONT_STORE  Nachricht darf nicht in die Comm-History
       MSG_DONT_WRAP   Nachricht nicht per break_string umbrechen
       MSG_DONT_IGNORE Nachricht kann nicht ignoriert werden
+      MSG_ALL_TYPES   alle relevanten Sinne fuer die angegebenen Nachrichten-
+                      typen muessen benutzbar sein (UND statt ODER).
 
       MSG_BS_LEAVE_LFS    wie BS_LEAVE_MY_LFS fuer break_string()
       MSG_BS_SINGLE_SPACE wie BS_SINGLE_SPACE fuer break_string()
diff --git a/std/player/comm.c b/std/player/comm.c
index c32f590..135d10e 100644
--- a/std/player/comm.c
+++ b/std/player/comm.c
@@ -1832,18 +1832,22 @@
   // unterdrueckt werden.
   if (!senses)
     return 0;
-
+  
+  int orig_senses = senses;
+  
   if ((senses & MT_LOOK) && CannotSee(1))
     senses &= ~MT_LOOK;  // Sinn loeschen
 
   if ((senses & MT_LISTEN) && QueryProp(P_DEAF))
     senses &= ~MT_LISTEN;
 
-  // wenn kein Sinn mehr ueber, wird die Nachricht nicht wahrgenommen.
-  if (!senses)
-    return MSG_SENSE_BLOCK;
+  // Wenn kein Sinn mehr ueber ist oder all_types gesetzt ist und nicht mehr
+  // alle Sinne vorhanden sind, wird die Nachricht nicht wahrgenommen.
+  if (orig_senses == senses // kein Sinn geloescht, haeufigster Fall
+      || (!(msg_type&MSG_ALL_SENSES) && senses) ) // min. ein Sinn uebrig
+    return 0;
 
-  return 0;
+  return MSG_SENSE_BLOCK;
 }
 
 public varargs int ReceiveMsg(string msg, int msg_type, string msg_action,
@@ -1874,8 +1878,8 @@
   // aber bestimmte Dinge lassen sich einfach nicht ignorieren.
   if (!(flags & MSG_DONT_IGNORE))
   {
-    // Sinne pruefen. (nur typen uebergeben, keine Flags)
-    int res=check_senses(type);
+    // Sinne pruefen.
+    int res=check_senses(msg_type);
     if (res) return res;
 
     // Spieler-definiertes Ignoriere? (nur typen uebergeben, keine Flags)
diff --git a/sys/living/comm.h b/sys/living/comm.h
index e2c048b..83811bb 100644
--- a/sys/living/comm.h
+++ b/sys/living/comm.h
@@ -22,12 +22,13 @@
 #define MSG_DONT_STORE   2048
 #define MSG_DONT_WRAP    4096
 #define MSG_DONT_IGNORE  8192
+#define MSG_ALL_SENSES   16384 // all relevant senses, not one of them
 // Flags < 1048576 (2^20) reserviert fuer Flags
 #define MSG_ALL_BS_FLAGS (BS_LEAVE_MY_LFS | BS_SINGLE_SPACE | BS_BLOCK\
                           | BS_NO_PARINDENT | BS_INDENT_ONCE\
                           |BS_PREPEND_INDENT)
 #define MSG_ALL_FLAGS (MSG_DONT_BUFFER | MSG_DONT_STORE | MSG_DONT_WRAP\
-                      | MSG_DONT_IGNORE | MSG_ALL_BS_FLAGS)
+                      | MSG_DONT_IGNORE | MSG_ALL_SENSES | MSG_ALL_BS_FLAGS)
 
 // Nachrichtentypen, Werte ab 2^20
 #define MT_UNKNOWN    0
