diff --git a/sflphone-common/src/audio/audiortp.cpp b/sflphone-common/src/audio/audiortp.cpp
index 5daca5e13a90543a92ad7d12578453a3559db1c9..3493159f72ba943985a230bd894df5794ce8df3b 100644
--- a/sflphone-common/src/audio/audiortp.cpp
+++ b/sflphone-common/src/audio/audiortp.cpp
@@ -255,10 +255,13 @@ AudioRtpRTX::setRtpSessionMedia(void)
     _codecSampleRate = _audiocodec->getClockRate();
     _codecFrameSize = _audiocodec->getFrameSize();
 
-    if ( _audiocodec->hasDynamicPayload() ) {
+    if( _audiocodec->getPayload() == 9 ) {
         _payloadIsSet = _session->setPayloadFormat(ost::DynamicPayloadFormat((ost::PayloadType) _audiocodec->getPayload(), _audiocodec->getClockRate()));
     }
-    else if ( !_audiocodec->hasDynamicPayload() ) {
+    else if ( _audiocodec->hasDynamicPayload() ) {
+        _payloadIsSet = _session->setPayloadFormat(ost::DynamicPayloadFormat((ost::PayloadType) _audiocodec->getPayload(), _audiocodec->getClockRate()));
+    }
+    else if ( !_audiocodec->hasDynamicPayload() && _audiocodec->getPayload() != 9) {
         _payloadIsSet = _session->setPayloadFormat(ost::StaticPayloadFormat((ost::StaticPayloadType) _audiocodec->getPayload()));
     }