diff --git a/sflphone-common/src/audio/audiortp.cpp b/sflphone-common/src/audio/audiortp.cpp
index 16766e710bd3ecb86accf3c95e7ccf6493774978..c1c8e00f1e135548ba1552b9cd0816b63f597c33 100644
--- a/sflphone-common/src/audio/audiortp.cpp
+++ b/sflphone-common/src/audio/audiortp.cpp
@@ -312,6 +312,8 @@ AudioRtpRTX::setRtpSessionMedia(void)
     
     _audiocodec = _ca->getLocalSDP()->get_session_media ();
 
+    _debug("AudioRtp: _audiocodec->getPayload() %i\n", _audiocodec->getPayload());
+
     if (_audiocodec == NULL) { return; }
 
     _codecSampleRate = _audiocodec->getClockRate();
@@ -346,7 +348,12 @@ AudioRtpRTX::setRtpSessionMedia(void)
 void
 AudioRtpRTX::setRtpSessionRemoteIp(void)
 {
-    if (_ca == 0) { return; }
+    _debug("setRtpSessionRemoteIp()\n");
+
+    if (_ca == 0) { 
+      _debug("Return no call \n");
+      return; 
+    }
 
     ost::InetHostAddress remote_ip(_ca->getLocalSDP()->get_remote_ip().c_str());
     _debug("Init audio RTP session %s\n", _ca->getLocalSDP()->get_remote_ip().data());
@@ -369,6 +376,7 @@ AudioRtpRTX::setRtpSessionRemoteIp(void)
         _sessionSend->setMark(true);
     } else {
 
+      _debug("AudioRtp: _ca->getLocalSDP()->get_remote_audio_port() %i\n", (unsigned short)_ca->getLocalSDP()->get_remote_audio_port());
         if (!_session->addDestination (remote_ip, (unsigned short)_ca->getLocalSDP()->get_remote_audio_port() )) {
             return;
         }
@@ -511,6 +519,7 @@ AudioRtpRTX::sendSessionFromMic(int timestamp)
 
     if (!_audiocodec) { _debug(" !ARTP: No audiocodec available for mic\n"); return; }
 
+    
     int compSize = processDataEncode(audiolayer);
 
     // putData put the data on RTP queue, sendImmediate bypass this queue
diff --git a/sflphone-common/src/sipvoiplink.cpp b/sflphone-common/src/sipvoiplink.cpp
index 22988b69573fda62c36036d974891fb9f49a4f69..30080fad7921d8dfa7fe65ddb1d06d19b6e76806 100644
--- a/sflphone-common/src/sipvoiplink.cpp
+++ b/sflphone-common/src/sipvoiplink.cpp
@@ -722,6 +722,7 @@ SIPVoIPLink::onhold ( const CallID& id )
 	// Stop sound
 	call->setAudioStart ( false );
 	call->setState ( Call::Hold );
+
 	_debug ( "* SIP Info: Stopping AudioRTP for onhold action\n" );
 	_audiortp->closeRtpSession();
 
@@ -804,6 +805,7 @@ SIPVoIPLink::offhold ( const CallID& id )
 	call->setState ( Call::Active );
 	// it's sure that this is the current call id...
 
+	_audiortp->getRTX()->setRtpSessionRemoteIp();
 	
 	// if ( _audiortp->createNewSession ( call ) < 0 )
         if ( _audiortp->start() < 0 )
@@ -1248,7 +1250,7 @@ SIPVoIPLink::SIPCallAnswered ( SIPCall *call, pjsip_rx_data *rdata )
 		_debug ( "Get remote media information from offer\n" );
 		call->getLocalSDP()->fetch_media_transport_info_from_remote_sdp ( r_sdp );
 
-		_audiortp->getRTX()->setRtpSessionRemoteIp();
+ 		_audiortp->getRTX()->setRtpSessionRemoteIp();
 
 		_debug ( "Update call state , id = %s\n", call->getCallId().c_str() );
 		call->setConnectionState ( Call::Connected );
@@ -2091,7 +2093,13 @@ void call_on_media_update ( pjsip_inv_session *inv, pj_status_t status )
         accId = Manager::instance().getAccountFromCall ( call->getCallId() );
 	link = dynamic_cast<SIPVoIPLink *> ( Manager::instance().getAccountLink ( accId ) );
 
-	link->_audiortp->getRTX()->setRtpSessionMedia();
+	_debug("call->getState() %i\n", call->getState());
+
+	if (call->getState() != Call::Hold)
+	{
+	    link->_audiortp->getRTX()->setRtpSessionMedia();
+	    link->_audiortp->getRTX()->setRtpSessionRemoteIp();
+	}
 
 }