diff --git a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp
index 0d326bbc4d0353701d7b30db356dff17644ee0d7..822b10492036b4ec3e344a6d36cf5638f9e83d2d 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp
+++ b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.cpp
@@ -126,7 +126,7 @@ AudioRtpRecord::~AudioRtpRecord()
 }
 
 
-AudioRtpRecordHandler::AudioRtpRecordHandler (SIPCall *ca) : _audioRtpRecord (), _id (ca->getCallId()), echoCanceller(ca->getMemoryPool()), gainController(8000, -10.0)
+AudioRtpRecordHandler::AudioRtpRecordHandler (SIPCall *ca) : _audioRtpRecord (), id_ (ca->getCallId()), echoCanceller(ca->getMemoryPool()), gainController(8000, -10.0)
 {
 
 }
@@ -275,13 +275,13 @@ int AudioRtpRecordHandler::processDataEncode (void)
     int bytesToGet = computeNbByteAudioLayer (mainBufferSampleRate, fixedCodecFramesize);
 
     // available bytes inside ringbuffer
-    int availBytesFromMic = Manager::instance().getMainBuffer()->availForGet (_id);
+    int availBytesFromMic = Manager::instance().getMainBuffer()->availForGet (id_);
 
     if (availBytesFromMic < bytesToGet)
         return 0;
 
     // Get bytes from micRingBuffer to data_from_mic
-    int nbSample = Manager::instance().getMainBuffer()->getData (micData, bytesToGet, 100, _id) / sizeof (SFLDataFormat);
+    int nbSample = Manager::instance().getMainBuffer()->getData (micData, bytesToGet, 100, id_) / sizeof (SFLDataFormat);
 
     // process mic fade in
     if (!_audioRtpRecord._micFadeInComplete)
@@ -393,7 +393,7 @@ void AudioRtpRecordHandler::processDataDecode (unsigned char *spkrData, unsigned
         }
 
         // put data in audio layer, size in byte
-        Manager::instance().getMainBuffer()->putData (spkrDataConverted, nbSample * sizeof (SFLDataFormat), 100, _id);
+        Manager::instance().getMainBuffer()->putData (spkrDataConverted, nbSample * sizeof (SFLDataFormat), 100, id_);
 
 
     } else {
@@ -401,7 +401,7 @@ void AudioRtpRecordHandler::processDataDecode (unsigned char *spkrData, unsigned
     	    echoCanceller.putData(spkrDataDecoded, expandedSize);
     	}
         // put data in audio layer, size in byte
-        Manager::instance().getMainBuffer()->putData (spkrDataDecoded, expandedSize, 100, _id);
+        Manager::instance().getMainBuffer()->putData (spkrDataDecoded, expandedSize, 100, id_);
     }
 }
 
diff --git a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h
index 8bdf75a0b1f584e18c178f6a4f5908d1ee340f50..42fa78d6d543726a1b2ed1831173249db8c3cfd3 100644
--- a/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h
+++ b/sflphone-common/src/audio/audiortp/AudioRtpRecordHandler.h
@@ -225,9 +225,9 @@ class AudioRtpRecordHandler
 
     private:
 
-        std::string& _id;
+        const std::string id_;
 
- 	EchoSuppress echoCanceller;
+        EchoSuppress echoCanceller;
 
         GainControl gainController;
 };
diff --git a/sflphone-common/src/call.h b/sflphone-common/src/call.h
index ba77f3e941b7289309e8c989e8a926809c8a4275..6457929c379d8974af4bd6f75af0787e50cef0b2 100644
--- a/sflphone-common/src/call.h
+++ b/sflphone-common/src/call.h
@@ -86,10 +86,10 @@ class Call: public Recordable
         virtual ~Call();
 
         /**
-         * Return a reference on the call id
+         * Return a copy of the call id
          * @return call id
          */
-        std::string& getCallId() {
+        std::string getCallId() const {
             return _id;
         }
 
diff --git a/sflphone-common/src/im/InstantMessaging.cpp b/sflphone-common/src/im/InstantMessaging.cpp
index e8d7ba95a9ce34673af2969d12554780ef775e9c..fc0b436adcfc34e3be7a06993a66a0549cfc0ee4 100644
--- a/sflphone-common/src/im/InstantMessaging.cpp
+++ b/sflphone-common/src/im/InstantMessaging.cpp
@@ -75,7 +75,7 @@ static void XMLCALL startElementCallback (void *userData, const char *name, cons
 
 }
 
-static void XMLCALL endElementCallback (void *userData, const char *name)
+static void XMLCALL endElementCallback (void * /*userData*/, const char * /*name*/)
 {
     // std::cout << "endElement " << name << std::endl;
 }
@@ -133,7 +133,7 @@ bool InstantMessaging::saveMessage (const std::string& message, const std::strin
     return true;
 }
 
-std::string InstantMessaging::receive (const std::string& message, const std::string& author, std::string& id)
+std::string InstantMessaging::receive (const std::string& message, const std::string& /*author*/, const std::string& /*id*/)
 {
 
     // We just receive a TEXT message. Before sent it to the recipient, we must assure that the message is complete.
@@ -153,7 +153,7 @@ std::string InstantMessaging::receive (const std::string& message, const std::st
 
 }
 
-pj_status_t InstantMessaging::notify (std::string& id)
+pj_status_t InstantMessaging::notify (const std::string& /*id*/)
 {
     // Notify the clients through a D-Bus signal
     return PJ_SUCCESS;
@@ -246,7 +246,7 @@ pj_status_t InstantMessaging::send_sip_message (pjsip_inv_session *session, std:
 }
 
 
-bool InstantMessaging::iax_send (iax_session* session, const std::string& id, const std::string& message)
+bool InstantMessaging::iax_send (iax_session* session, const std::string& /*id*/, const std::string& message)
 {
     if (iax_send_text (session, message.c_str()) != -1)
         return true;
diff --git a/sflphone-common/src/im/InstantMessaging.h b/sflphone-common/src/im/InstantMessaging.h
index 009647139a0d27e642f6da4b041ee980a1eadc7b..565b5663a37022678380caa1a3ea8307cd2b4427 100644
--- a/sflphone-common/src/im/InstantMessaging.h
+++ b/sflphone-common/src/im/InstantMessaging.h
@@ -141,7 +141,7 @@ class InstantMessaging
            * @param message	The message contained in the TEXT message
          * @param id		The call recipient of the message
          */
-        std::string receive (const std::string& message, const std::string& author, std::string& id);
+        std::string receive (const std::string& message, const std::string& author, const std::string& id);
 
         /*
          * Send a SIP string message inside a call
@@ -168,7 +168,7 @@ class InstantMessaging
          *
             * @param id	The callID to notify (TODO: accountID?)
          */
-        pj_status_t notify (std::string& id);
+        pj_status_t notify (const std::string& /*id*/);
 
 
         /**