diff --git a/src/winio.c b/src/winio.c
index 76cc4cc8bdb022638a19a850acdb74e9a86b9c3e..0a27f8d604d69607d26f3c0fef273fa408ba14e0 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2159,7 +2159,8 @@ void statusline(message_type importance, const char *msg, ...)
     if (importance == ALERT) {
 	if (++alerts > 3 && !ISSET(NO_PAUSES))
 	    msg = _("Further warnings were suppressed");
-	beep();
+	else if (alerts < 4)
+	    beep();
     }
 
     lastmessage = importance;