diff --git a/std/player/base.c b/std/player/base.c
index 7f616d0..71591e2 100644
--- a/std/player/base.c
+++ b/std/player/base.c
@@ -206,7 +206,6 @@
 
   Set(P_NO_ASCII_ART, SAVE, F_MODE_AS);
 
-  Set(P_VISUALBELL, SAVE, F_MODE_AS);
   Set(P_CARRIED_VALUE, SAVE, F_MODE_AS);
 
   Set(P_PROMPT, "> ");
@@ -3654,27 +3653,27 @@
   if(!str)
   {
     write("Derzeitige Einstellung fuer Tonausgabe: "+
-         (QueryProp(P_VISUALBELL)?"AUS":"EIN")+".\n");
+         ((QueryProp(P_ALERT) & AL_NO_SOUND)?"AUS":"EIN")+".\n");
     return 1;
   }
   if (str=="ein")
   {
-    if(!QueryProp(P_VISUALBELL))
+    if(!(QueryProp(P_ALERT) & AL_NO_SOUND))
       write("Die Tonausgabe stand schon auf EIN.\n");
     else
       {
-  SetProp(P_VISUALBELL,0);
+  SetProp(P_ALERT, QueryProp(P_ALERT) & ~ AL_NO_SOUND);
         write("OK, Tonausgabe auf EIN gestellt.\n");
       }
   }
   else
     if (str=="aus")
     {
-      if(QueryProp(P_VISUALBELL))
+      if(QueryProp(P_ALERT) & AL_NO_SOUND)
         write("Die Tonausgabe stand schon auf AUS.\n");
       else
         {
-          SetProp(P_VISUALBELL,1);
+          SetProp(P_ALERT, QueryProp(P_ALERT) | AL_NO_SOUND);
     write("OK, Tonausgabe auf AUS gestellt.\n");
   }
     }
@@ -3848,7 +3847,7 @@
 
   if(pointerp(list=Query(P_WAITFOR)) && sizeof(list) && member(list,who)!=-1)
   {
-    if (!QueryProp(P_VISUALBELL))
+    if (!(QueryProp(P_ALERT) & AL_NO_SOUND))
         name+=sprintf("%c",7); // Char fuer Pieps an den String anhaengen.
     // Moechte der Spieler keine ASCII-Grafik sehen, wird diese Meldung ohne
     // Leerzeichen formatiert, so dass sie von Screenreadern vorgelesen wird.
