diff --git a/src/manager.cpp b/src/manager.cpp
index b4b0a676890effa8247db4641b9b0175026195ba..8e04ebebde540fbe270bcc52cffcbbd7a099e5b1 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -2010,12 +2010,13 @@ Manager::callBusy(Call& call)
     RING_DBG("[call:%s] Busy", call.getCallId().c_str());
 
     if (isCurrentCall(call)) {
-        pimpl_->playATone(Tone::TONE_BUSY);
         pimpl_->unsetCurrentCall();
     }
 
     checkAudio();
     pimpl_->removeWaitingCall(call.getCallId());
+    if (not incomingCallsWaiting())
+        stopTone();
 }
 
 //THREAD=VoIP
@@ -2026,7 +2027,6 @@ Manager::callFailure(Call& call)
     RING_DBG("[call:%s] Failed", call.getCallId().c_str());
 
     if (isCurrentCall(call)) {
-        pimpl_->playATone(Tone::TONE_BUSY);
         pimpl_->unsetCurrentCall();
     }