diff --git a/sflphone-client-gnome/src/callable_obj.c b/sflphone-client-gnome/src/callable_obj.c
index 15dc04fd01e12e18dbe731d41f251540529f4d9c..adab9d2ba923897478c297802cfec4dc2cc1c93b 100644
--- a/sflphone-client-gnome/src/callable_obj.c
+++ b/sflphone-client-gnome/src/callable_obj.c
@@ -58,7 +58,7 @@ gchar* call_get_peer_name (const gchar *format)
     if (!end) {
         return g_strndup (format, 0);
     } else {
-        name = g_strdup (format);
+        name = format;
         return g_strndup(name, end - name);
     }
 }
diff --git a/sflphone-client-gnome/src/conference_obj.c b/sflphone-client-gnome/src/conference_obj.c
index c0ab255d6266c479ab0bc04da76795be62da6c2f..039f01f73ef0a81727fa4a2289f73ab9b22b5d61 100644
--- a/sflphone-client-gnome/src/conference_obj.c
+++ b/sflphone-client-gnome/src/conference_obj.c
@@ -38,6 +38,7 @@ void create_new_conference (conference_state_t state, const gchar* confID, confe
 {
 
     conference_obj_t *obj;
+	gchar* conf_id;
 
     // Allocate memory
     obj = g_new0 (conference_obj_t, 1);
@@ -46,7 +47,8 @@ void create_new_conference (conference_state_t state, const gchar* confID, confe
     obj->_state = state;
 
     // Set the ID field
-    obj->_confID = g_strdup (confID);
+	conf_id = confID;
+    obj->_confID = g_strdup (conf_id);
     *new_conf = obj;
     
 }
diff --git a/sflphone-common/src/iax/iaxvoiplink.cpp b/sflphone-common/src/iax/iaxvoiplink.cpp
index 32a46a24774b441f9bba0d519029e909d84a3e74..1aac07fae3f2b09e06b1825b46fcdd4a797147d7 100644
--- a/sflphone-common/src/iax/iaxvoiplink.cpp
+++ b/sflphone-common/src/iax/iaxvoiplink.cpp
@@ -882,22 +882,28 @@ IAXVoIPLink::iaxHandleVoiceEvent (iax_event* event, IAXCall* call)
     int expandedSize, nbSample_;
     AudioCodec *ac;
 
-    ac = call->getCodecMap().getCodec (call -> getAudioCodec());
+	if (!call)
+		return;
 
-    audiolayer->getMainBuffer()->setInternalSamplingRate(ac->getClockRate());
-    
-    // If we receive datalen == 0, some things of the jitter buffer in libiax2/iax.c
-    // were triggered
-
-    if (!event->datalen) {
+	if (!event->datalen) {
         // Skip this empty packet.
         //_debug("IAX: Skipping empty jitter-buffer interpolated packet\n");
         return;
     }
 
-    if (audiolayer) {
+    ac = call->getCodecMap ().getCodec (call->getAudioCodec ());
 
-	int _mainBufferSampleRate = audiolayer->getMainBuffer()->getInternalSamplingRate();
+	if (!ac)
+		return;
+    
+	if (audiolayer) {
+
+		audiolayer->getMainBuffer ()->setInternalSamplingRate (ac->getClockRate ());
+    
+		// If we receive datalen == 0, some things of the jitter buffer in libiax2/iax.c
+		// were triggered
+
+		int _mainBufferSampleRate = audiolayer->getMainBuffer()->getInternalSamplingRate();
 
         // On-the-fly codec changing (normally, when we receive a full packet)
         // as per http://tools.ietf.org/id/draft-guy-iax-03.txt