diff --git a/sflphone-client-gnome/src/actions.c b/sflphone-client-gnome/src/actions.c
index 1cad4d868eef52b2b48a03a51545f747cf7535c8..d89d4c89895c48014550940f31364e0f0dd7099f 100644
--- a/sflphone-client-gnome/src/actions.c
+++ b/sflphone-client-gnome/src/actions.c
@@ -248,12 +248,8 @@ sflphone_fill_account_list(gboolean toolbarInitialized)
         a->protocol_state_description = g_hash_table_lookup(details, REGISTRATION_STATE_DESCRIPTION);
     }
 
-	// Reset the current account message number
+	// Set the current account message number
 	current_account_set_message_number (count);
-
-    // Prevent update being called when toolbar is not yet initialized
-    if(toolbarInitialized)
-        update_actions ();
 }
 
 gboolean sflphone_init()
diff --git a/sflphone-client-gnome/src/actions.h b/sflphone-client-gnome/src/actions.h
index 2365243748bf9792fe31051dd71f68446d897160..41e3ab2ef244812b2e8e044dde175b56ac0849ce 100644
--- a/sflphone-client-gnome/src/actions.h
+++ b/sflphone-client-gnome/src/actions.h
@@ -164,7 +164,7 @@ void sflphone_get_ip2ip_properties (GHashTable **properties);
 /**
  * Initialize the accounts data structure
  */
-void sflphone_fill_account_list(gboolean toolbarInitialized);
+void sflphone_fill_account_list ();
 
 void sflphone_fill_call_list (void);
 
diff --git a/sflphone-client-gnome/src/dbus/dbus.c b/sflphone-client-gnome/src/dbus/dbus.c
index ed2e4b140d04b6537f97490ecd280f88b4410e4d..4cd91db08037968747aeca10ebe74c9a0ae971f1 100644
--- a/sflphone-client-gnome/src/dbus/dbus.c
+++ b/sflphone-client-gnome/src/dbus/dbus.c
@@ -320,7 +320,7 @@ accounts_changed_cb (DBusGProxy *proxy UNUSED,
         void * foo  UNUSED )
 {
     DEBUG ("Accounts changed");
-    sflphone_fill_account_list(TRUE);
+    sflphone_fill_account_list ();
     sflphone_fill_ip2ip_profile();
     account_list_config_dialog_fill();
 
diff --git a/sflphone-client-gnome/src/main.c b/sflphone-client-gnome/src/main.c
index f7a8cecd8e219e25fa532817aab25ce1c02de275..2a8b7ca5a9af5e5f43a1392be2a37def3dbfec23 100644
--- a/sflphone-client-gnome/src/main.c
+++ b/sflphone-client-gnome/src/main.c
@@ -116,6 +116,9 @@ There is NO WARRANTY, to the extent permitted by law.\n\n");
     // Get the active calls and conferences at startup    
     sflphone_fill_call_list ();
     sflphone_fill_conference_list();
+
+	// Update the GUI
+	update_actions ();
         
     /* start the main loop */
     gtk_main();
diff --git a/sflphone-common/libs/pjproject/pjlib/include/pj/compat/string.h b/sflphone-common/libs/pjproject/pjlib/include/pj/compat/string.h
index 198fbe98509b59bc742fbbc707d7a96d012ae786..e0ceb53f894b2c6eaad6e52dfe51e45524fe382c 100644
--- a/sflphone-common/libs/pjproject/pjlib/include/pj/compat/string.h
+++ b/sflphone-common/libs/pjproject/pjlib/include/pj/compat/string.h
@@ -52,8 +52,8 @@
 #   define wcsicmp	_wcsicmp
 #   define wcsnicmp	_wcsnicmp
 #else
-#   define stricmp	strcasecmp
-#   define strnicmp	strncasecmp
+// #   define stricmp	strcasecmp
+// #   define strnicmp	strncasecmp
 
 #   if defined(PJ_NATIVE_STRING_IS_UNICODE) && PJ_NATIVE_STRING_IS_UNICODE!=0
 #	error "Implement Unicode string functions"
diff --git a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp
index fc3784eb9caae24bf4d727a3ef3885252f272a63..a2603fc8271e1430ca664edce67d07e3205b3ad4 100644
--- a/sflphone-common/src/audio/codecs/speexcodec_nb.cpp
+++ b/sflphone-common/src/audio/codecs/speexcodec_nb.cpp
@@ -111,7 +111,7 @@ class Speex : public AudioCodec
 
         virtual int codecDecode (short *dst, unsigned char *src, unsigned int size) {
 
-            int ratio = 320 / _speex_frame_size;
+            // int ratio = 320 / _speex_frame_size;
             speex_bits_read_from (&_speex_dec_bits, (char*) src, size);
             speex_decode_int (_speex_dec_state, &_speex_dec_bits, dst);
 
diff --git a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp
index 688ad6cf753bf21bbae345828844534cfd1b9eac..9d3b618674d016fdd939b08e30e833aa70d47bf0 100644
--- a/sflphone-common/src/audio/codecs/speexcodec_wb.cpp
+++ b/sflphone-common/src/audio/codecs/speexcodec_wb.cpp
@@ -109,7 +109,7 @@ class Speex : public AudioCodec
 
         virtual int codecDecode (short *dst, unsigned char *src, unsigned int size) {
 
-            int ratio = 320 / _speex_frame_size;
+            // int ratio = 320 / _speex_frame_size;
 
             speex_bits_read_from (&_speex_dec_bits, (char*) src, size);
             speex_decode_int (_speex_dec_state, &_speex_dec_bits, dst);
diff --git a/sflphone-common/src/sip/sipvoiplink.cpp b/sflphone-common/src/sip/sipvoiplink.cpp
index e49b33cf07c660e5dc8ff5df29d102fa0ce103e0..bedcb5b6fe2506e2abeeaf2ac98a3b85b1148d6b 100644
--- a/sflphone-common/src/sip/sipvoiplink.cpp
+++ b/sflphone-common/src/sip/sipvoiplink.cpp
@@ -397,8 +397,6 @@ int SIPVoIPLink::sendRegister (AccountID id)
     pjsip_generic_string_hdr *h;
     pjsip_hdr hdr_list;
 
-    _debug ("SIPVoIPLink::sendRegister()\n");
-
     account = dynamic_cast<SIPAccount *> (Manager::instance().getAccount (id));
 
     if (account == NULL) {
@@ -586,10 +584,10 @@ int SIPVoIPLink::sendRegister (AccountID id)
         return false;
     }
 
-    // pjsip_tpselector *tp;
+    pjsip_tpselector *tp;
 
-    // init_transport_selector (account->getAccountTransport (), &tp);
-    // status = pjsip_regc_set_transport (regc, tp);
+    init_transport_selector (account->getAccountTransport (), &tp);
+    status = pjsip_regc_set_transport (regc, tp);
 
     if (status != PJ_SUCCESS) {
         _debug ("UserAgent: Unable to set transport.\n");
@@ -1320,9 +1318,9 @@ SIPVoIPLink::SIPStartCall (SIPCall* call, const std::string& subject UNUSED)
     call->setInvSession (inv);
 
     // Set the appropriate transport
-    // pjsip_tpselector *tp;
-    // init_transport_selector (account->getAccountTransport (), &tp);
-    // status = pjsip_dlg_set_transport (dialog, tp);
+    pjsip_tpselector *tp;
+    init_transport_selector (account->getAccountTransport (), &tp);
+    status = pjsip_dlg_set_transport (dialog, tp);
 
     status = pjsip_inv_send_msg (inv, tdata);
 
@@ -1968,7 +1966,7 @@ int SIPVoIPLink::createUDPServer (AccountID id)
     pjsip_tpmgr_dump_transports (tpmgr);
 
     if (status != PJ_SUCCESS) {
-        _debug ("UserAgent: (%d) Unable to start UDP transport!\n", status);
+        _debug ("UserAgent: (%d) Unable to start UDP transport on %s:%d\n", status, listeningAddress.data(), listeningPort);
         // Try to acquire an existing one
         // pjsip_tpmgr_acquire_transport ()
         return status;
@@ -2212,6 +2210,8 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
     pj_uint16_t stunPort;
     pj_sockaddr_in pub_addr;
     pj_sock_t sock;
+	std::string listeningAddress = "";
+	int listeningPort;
 
     /*
      * Retrieve the account information
@@ -2272,15 +2272,12 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
     a_name.host = pj_str (pj_inet_ntoa (pub_addr.sin_addr));
     a_name.port = pj_ntohs (pub_addr.sin_port);
 
-    _localExternAddress = std::string (a_name.host.ptr);
-    _localExternPort = (int) a_name.port;
+    listeningAddress = std::string (a_name.host.ptr);
+    listeningPort = (int) a_name.port;
 
     // Set the address to be used in SDP
-    account->setSessionAddress (_localExternAddress);
-    account->setSessionPort (_localExternPort);
-
-    //account->setStunServerName (a_name.host);
-    //account->setStunPort (a_name.port);
+	account->setPublishedAddress (listeningAddress);
+    account->setPublishedPort (listeningPort);
 
     // Create the UDP transport
     pjsip_transport *transport;
@@ -2288,8 +2285,10 @@ pj_status_t SIPVoIPLink::createAlternateUdpTransport (AccountID id)
 
     if (status != PJ_SUCCESS) {
         _debug ("Error creating alternate SIP UDP listener (%d)\n", status);
+		return status;
     }
 
+	_debug ("UDP Transport successfully created on %s:%i\n", listeningAddress.c_str (), listeningPort);
     account->setAccountTransport (transport);
 
     return PJ_SUCCESS;