diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index a7bd88402889f0e31e26df4d8cd3101bc106535a..26108d4999e3dbeba6004f732cf076d9a74365b4 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -457,27 +457,29 @@ int SIPVoIPLink::sendRegister (AccountID id)
         }
     }
 
-    // Launch a new UDP listener/transport, using the published address
-    if (account->isStunEnabled ()) {
-	pj_status_t status;
+	else
+	{
+		// Launch a new UDP listener/transport, using the published address
+		if (account->isStunEnabled ()) {
+			pj_status_t status;
 
-	_debug("    sendRegister: createAlternateUdpTransport\n");
-	status = createAlternateUdpTransport (id);
+			_debug("    sendRegister: createAlternateUdpTransport\n");
+			status = createAlternateUdpTransport (id);
 		
-	if (status != PJ_SUCCESS) {
-	    _debug ("Failed to initialize UDP transport with an extern published address for account %s\n", id.c_str());
-	}
-    }
-    else
-    {
+			if (status != PJ_SUCCESS) {
+				_debug ("Failed to initialize UDP transport with an extern published address for account %s\n", id.c_str());
+			}
+		}
+		else
+		{
 	
-	status = createUDPServer (id);
-	if (status != PJ_SUCCESS) {
-	    _debug ("Failed to initialize UDP transport with a local address for account %s\n. Try to use the local UDT transport", id.c_str());
-	    account->setAccountTransport (_localUDPTransport);
+			status = createUDPServer (id);
+			if (status != PJ_SUCCESS) {
+			_debug ("Failed to initialize UDP transport with a local address for account %s\n. Try to use the local UDT transport", id.c_str());
+			account->setAccountTransport (_localUDPTransport);
+			}
+		}
 	}
-    }
-    
 
     _mutexSIP.enterMutex();
     
@@ -814,10 +816,8 @@ SIPVoIPLink::hangup (const CallID& id)
     if (status != PJ_SUCCESS)
         return false;
 
-
     call->getInvSession()->mod_data[getModId() ] = NULL;
 
-
     // Release RTP thread
     if (Manager::instance().isCurrentCall (id)) {
         _debug ("* SIP Info: Stopping AudioRTP for hangup\n");
@@ -1986,11 +1986,6 @@ std::string SIPVoIPLink::findLocalAddressFromUri(const std::string& uri, pjsip_t
         return machineName;
     }
 
-	if (transport == NULL) {
-        _debug ("transport is NULL in findLocalAddressFromUri\n. Try the local UDP transport");
-        transport = _localUDPTransport;
-    }
-
     pjsip_sip_uri * sip_uri = NULL;
 
     sip_uri = (pjsip_sip_uri*) pjsip_uri_get_uri (genericUri);
@@ -2003,6 +1998,10 @@ std::string SIPVoIPLink::findLocalAddressFromUri(const std::string& uri, pjsip_t
     if (PJSIP_URI_SCHEME_IS_SIPS (sip_uri)) {
         transportType = PJSIP_TRANSPORT_TLS;
     } else {
+		if (transport == NULL) {
+			_debug ("transport is NULL in findLocalAddressFromUri\n. Try the local UDP transport");
+			transport = _localUDPTransport;
+		}
         transportType = PJSIP_TRANSPORT_UDP;
     }
 
@@ -2022,17 +2021,19 @@ std::string SIPVoIPLink::findLocalAddressFromUri(const std::string& uri, pjsip_t
     int port;
 
     pj_status_t status;
-
-
 	/* Init the transport selector */
 	//_debug ("Transport ID: %s\n", transport->obj_name);
-	status = init_transport_selector (transport, &tp_sel);
-
+	if (transportType == PJSIP_TRANSPORT_UDP)
+	{
+		status = init_transport_selector (transport, &tp_sel);
 
-    if (status == PJ_SUCCESS)
-	status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, tp_sel, &localAddress, &port);
-    else
-	status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
+		if (status == PJ_SUCCESS)
+			status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, tp_sel, &localAddress, &port);
+		else
+			status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
+	}
+	else
+		status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
 
     if (status != PJ_SUCCESS) {
         _debug ("Failed to find local address from transport\n");
@@ -2078,11 +2079,6 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
         return atoi (DEFAULT_SIP_PORT);
     }
 
-	if (transport == NULL) {
-        _debug ("transport is NULL in findLocalPortFromUri - Try the local UDP transport\n");
-		transport = _localUDPTransport;
-	}
-
     pjsip_sip_uri * sip_uri = NULL;
 
     sip_uri = (pjsip_sip_uri*) pjsip_uri_get_uri (genericUri);
@@ -2096,6 +2092,11 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
         transportType = PJSIP_TRANSPORT_TLS;
         port = atoi (DEFAULT_SIP_TLS_PORT);
     } else {
+		if (transport == NULL) {
+			_debug ("transport is NULL in findLocalPortFromUri - Try the local UDP transport\n");
+			transport = _localUDPTransport;
+		}
+
         transportType = PJSIP_TRANSPORT_UDP;
         port = atoi (DEFAULT_SIP_PORT);
     }
@@ -2115,15 +2116,21 @@ int SIPVoIPLink::findLocalPortFromUri (const std::string& uri, pjsip_transport *
     // transports and the transport type
     
     /* Init the transport selector */
-    _debug ("Transport ID: %s\n", transport->obj_name);
-    pj_status_t status;
+	pj_status_t status;
+	if (transportType == PJSIP_TRANSPORT_UDP)
+	{
+		_debug ("Transport ID: %s\n", transport->obj_name);
 
-    status = init_transport_selector (transport, &tp_sel);
+		status = init_transport_selector (transport, &tp_sel);
 
-    if (status == PJ_SUCCESS)
-	status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, tp_sel, &localAddress, &port);
-    else
-	status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
+		if (status == PJ_SUCCESS)
+			status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, tp_sel, &localAddress, &port);
+		else
+			status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
+	}
+	else
+		status = pjsip_tpmgr_find_local_addr (tpmgr, _pool, transportType, NULL, &localAddress, &port);
+		
 
     if (status != PJ_SUCCESS) {
         _debug ("Failed to find local address from transport\n");
@@ -2888,10 +2895,10 @@ mod_on_rx_request (pjsip_rx_data *rdata)
     
     char* from_header = strstr(rdata->msg_info.msg_buf, "From: ");
     // _debug("------------------------------ thefromheader: %s\n", from_header);
-    char* display_name = strtok(from_header, "\"");
-    display_name = strtok(NULL, "\"");
-    _debug("UserAgent: The displayname for this call: %s\n", display_name);
-    displayName = string(display_name);
+    //char* display_name = strtok(from_header, "\"");
+    //display_name = strtok(NULL, "\"");
+    //_debug("UserAgent: The displayname for this call: %s\n", display_name);
+    displayName = string("");//display_name);
 
     _debug ("UserAgent: The receiver is : %s@%s\n", userName.data(), server.data());
 
@@ -2903,7 +2910,7 @@ mod_on_rx_request (pjsip_rx_data *rdata)
 
     // display_name = rdata->msg_info.from->name;
 
-    std::string temp((char*)(&display_name));
+    std::string temp("");///(char*)(&display_name));
 
     sip_uri = (pjsip_sip_uri *) pjsip_uri_get_uri (uri);