diff --git a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
index 0c62c1a9d15ab74487c5a409eaafbf2dc6677f92..e60546ee23c2eeb7cef107dd005055f6734d5d6a 100644
--- a/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioSrtpSession.cpp
@@ -46,7 +46,7 @@ AudioSrtpSession::AudioSrtpSession (ManagerImpl * manager, SIPCall * sipcall) :
         ost::SymmetricRTPSession (ost::InetHostAddress (sipcall->getLocalIp().c_str()), sipcall->getLocalAudioPort()),
         AudioRtpSession<AudioSrtpSession> (manager, sipcall)
 {
-    _debug ("***************** AudioSrtpSession initialized *********************");
+    _debug ("***************** Initialize AudioSrtpSession *********************");
     initializeLocalMasterKey();
     initializeLocalMasterSalt();
     // initializeRemoteCryptoContext();
@@ -77,7 +77,7 @@ std::string AudioSrtpSession::getLocalCryptoInfo() {
 
     std::string crypto = tag.append(" ");
     crypto += crypto_suite.append(" ");
-    crypto += application.append(" ");
+    // crypto += application.append(" ");
     crypto += srtp_keys;
 
     _debug("%s", crypto.c_str());
@@ -90,18 +90,28 @@ void AudioSrtpSession::setRemoteCryptoInfo(sfl::SdesNegotiator& nego) {
 
     _debug("Set remote Cryptographic info for this rtp session");
 
+    _debug("nego.getKeyInfo() : %s", nego.getKeyInfo().c_str());
+
     unBase64ConcatenatedKeys(nego.getKeyInfo());
     
     initializeRemoteCryptoContext();
+    setInQueueCryptoContext(_remoteCryptoCtx);
 }
 
 
 void AudioSrtpSession::initializeLocalMasterKey(void)
 {
+    _debug("initializeLocalMasterKey");
+
     _localMasterKeyLength = 16;
 
-    for(int i = 0; i < 16; i++)
+    printf("Local Master: ");
+    for(int i = 0; i < 16; i++) {
         _localMasterKey[i] = mk[i];
+	printf("%i", _localMasterKey[i]);
+    }
+    printf("\n");
+    
 
     return;
 }
@@ -111,8 +121,12 @@ void AudioSrtpSession::initializeLocalMasterSalt(void)
 {
     _localMasterSaltLength = 14;
 
-    for(int i = 0; i < 14; i++)
+    printf("Remote Salt: ");
+    for(int i = 0; i < 14; i++) {
         _localMasterSalt[i] = ms[i];
+	printf("%i", _localMasterSalt[i]);
+    }
+    printf("\n");
 
     return;
 
@@ -141,19 +155,23 @@ std::string AudioSrtpSession::getBase64ConcatenatedKeys()
   void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
 {
 
+    printf("unBase64ConcatenatedKeys : base64keys %s\n", base64keys.c_str());
+    printf("unBase64ConcatenatedKeys : size %i\n", (int)base64keys.size());
     char *output = decodeBase64((unsigned char*)base64keys.c_str(), base64keys.size());
 
-    uint8 finally[30];
-    memcpy((void*)finally, (void*)output, 30);
+    uint8 concatenated[30];
+    memcpy((void*)concatenated, (void*)output, 30);
 
-     printf("Master: ");
+     printf("Remote Master: ");
      for(int i = 0; i < 16; i++) {
-       printf("%i", finally[i]);
+       _remoteMasterKey[i] = concatenated[i];
+       printf("%i", concatenated[i]);
      }
      printf("\n");
-     printf("Salt: ");
-     for(int i = 16; i < 30; i++) {
-       printf("%i", finally[i]);
+     printf("Remote Salt: ");
+     for(int i = 14; i < 30; i++) {
+       _remoteMasterSalt[i-14] = concatenated[i];
+       printf("%i", concatenated[i]);
      }
      printf("\n");
 
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index e173e0bd1874ddb474a96281de5fd764075aae14..5a5885add8438b3a82e162abc361d1c3d18aebd8 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -3241,6 +3241,7 @@ void call_on_media_update (pjsip_inv_session *inv, pj_status_t status)
 	if(sdesnego.negotiate()) {
 	    _debug("******************** Negociation Is Successfull *********************\n");
 
+	    _debug("keys : %s", sdesnego.getKeyInfo().c_str());
 	    call->getAudioRtp()->setRemoteCryptoInfo(sdesnego);
 	}