diff --git a/src/ice_transport.cpp b/src/ice_transport.cpp
index 302c13be09eb85fcbffc04e5041f558c9981f2ec..6e7d9b83b5df513d99acd4265712dc44faf8f111 100644
--- a/src/ice_transport.cpp
+++ b/src/ice_transport.cpp
@@ -284,6 +284,7 @@ IceTransport::Impl::Impl(const char* name, int component_count, bool master,
     , initiatorSession_(master)
     , thread_()
 {
+    sip_utils::register_thread();
     if (options.upnpEnable)
         upnp_.reset(new upnp::Controller(false));
 
@@ -312,7 +313,6 @@ IceTransport::Impl::Impl(const char* name, int component_count, bool master,
     add_stun_server(config_, pj_AF_INET6());
     add_stun_server(config_, pj_AF_INET());
 
-    sip_utils::register_thread();
     pool_.reset(pj_pool_create(iceTransportFactory.getPoolFactory(),
                                "IceTransport.pool", 512, 512, NULL));
     if (not pool_)