diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index 7d66305764a7ab3674c4758d2022da21152d06d8..76c93e350529a2ac9f2e0ef81c3701ad6796acc3 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -806,6 +806,12 @@ SIPVoIPLink::hangup (const CallID& id)
         return false;
     }
 
+    // Release RTP thread
+    if (Manager::instance().isCurrentCall (id)) {
+        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
+        _audiortp->stop();
+    }
+
     // User hangup current call. Notify peer
     status = pjsip_inv_end_session (call->getInvSession(), 404, NULL, &tdata);
 
@@ -825,6 +831,7 @@ SIPVoIPLink::hangup (const CallID& id)
 
     call->getInvSession()->mod_data[getModId() ] = NULL;
 
+
     // Release RTP thread
     if (Manager::instance().isCurrentCall (id)) {
         _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
@@ -852,6 +859,12 @@ SIPVoIPLink::peerHungup (const CallID& id)
         return false;
     }
 
+    // Release RTP thread
+    if (Manager::instance().isCurrentCall (id)) {
+        _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
+        _audiortp->stop();
+    }
+
     // User hangup current call. Notify peer
     status = pjsip_inv_end_session (call->getInvSession(), 404, NULL, &tdata);