diff --git a/daemon/src/audio/audiortp/audio_rtp_factory.cpp b/daemon/src/audio/audiortp/audio_rtp_factory.cpp
index 0eb046abe93aa751224924474ce5e8d2f89644a2..4747834738279838373248fd141c762bbfbafd5b 100644
--- a/daemon/src/audio/audiortp/audio_rtp_factory.cpp
+++ b/daemon/src/audio/audiortp/audio_rtp_factory.cpp
@@ -50,10 +50,6 @@ AudioRtpFactory::AudioRtpFactory(SIPCall *ca) : rtpSession_(NULL),
 
 AudioRtpFactory::~AudioRtpFactory()
 {
-    AudioSrtpSession* srtpSession = dynamic_cast<AudioSrtpSession*>(rtpSession_);
-    if (srtpSession)
-        srtpSession->deleteCryptoContexts();
-
     delete rtpSession_;
 }
 
diff --git a/daemon/src/audio/audiortp/audio_srtp_session.cpp b/daemon/src/audio/audiortp/audio_srtp_session.cpp
index 630d3ce94cd6dbe1eccf6479c3e76d321a8a7487..b6c3d94df80815603025b6536d16e7f355f6d610 100644
--- a/daemon/src/audio/audiortp/audio_srtp_session.cpp
+++ b/daemon/src/audio/audiortp/audio_srtp_session.cpp
@@ -262,7 +262,7 @@ void AudioSrtpSession::initializeRemoteCryptoContext()
 {
     DEBUG("AudioSrtp: Initialize remote crypto context");
 
-    CryptoSuiteDefinition crypto = sfl::CryptoSuites[remoteCryptoSuite_];
+    const CryptoSuiteDefinition &crypto = sfl::CryptoSuites[remoteCryptoSuite_];
 
     delete remoteCryptoCtx_;
     remoteCryptoCtx_ = new ost::CryptoContext(0x0,
@@ -285,7 +285,7 @@ void AudioSrtpSession::initializeLocalCryptoContext()
 {
     DEBUG("AudioSrtp: Initialize local crypto context");
 
-    CryptoSuiteDefinition crypto = sfl::CryptoSuites[localCryptoSuite_];
+    const CryptoSuiteDefinition &crypto = sfl::CryptoSuites[localCryptoSuite_];
 
     delete localCryptoCtx_;
     localCryptoCtx_ = new ost::CryptoContext(OutgoingDataQueue::getLocalSSRC(),
@@ -318,11 +318,4 @@ void AudioSrtpSession::restoreCryptoContext(ost::CryptoContext *localContext,
     setOutQueueCryptoContext(localCryptoCtx_);
 }
 
-void AudioSrtpSession::deleteCryptoContexts()
-{
-    delete remoteCryptoCtx_;
-    remoteCryptoCtx_ = 0;
-    delete localCryptoCtx_;
-    localCryptoCtx_ = 0;
-}
 }
diff --git a/daemon/src/audio/audiortp/audio_srtp_session.h b/daemon/src/audio/audiortp/audio_srtp_session.h
index 733e0cfb229bbda1464f0cc8eb5722659f121aeb..a84cfccc847b3ae4e1fc1827383e422289bcf9ee 100644
--- a/daemon/src/audio/audiortp/audio_srtp_session.h
+++ b/daemon/src/audio/audiortp/audio_srtp_session.h
@@ -101,10 +101,6 @@ class AudioSrtpSession : public AudioSymmetricRtpSession {
          */
         void restoreCryptoContext(ost::CryptoContext *, ost::CryptoContext *);
 
-        /**
-         * Force deletion of the current crypto contexts.
-         */
-        void deleteCryptoContexts();
     private:
         NON_COPYABLE(AudioSrtpSession);