diff --git a/contrib/src/opendht/SHA512SUMS b/contrib/src/opendht/SHA512SUMS
index acb5b1c9e9a6d2f3a7979183a2195138530a5189..bc8e1c6a97fbda269bef98fb65451d65cf66f192 100644
--- a/contrib/src/opendht/SHA512SUMS
+++ b/contrib/src/opendht/SHA512SUMS
@@ -1 +1 @@
-b9c28f1c540fa180224571cae186296442069619af11d0079f52554eb7af2bcb254cad3dddc49ef25e8b9ad8c9d97b924de0db07027f01b772c924421310bc27  opendht-104a9e3b283d3b8d7d86e31b7d911ca000a6e7ad.tar.gz
+7af2f88495a842251a5975d4133dde9bd981e59beaacbedaedd59042158270560167d07688bda320d4abd48a17eb6d1d4cd4b600c17193f8bfd6290b15d1a2e0  opendht-ed642b0337653180e64cbe44c81a9df9cdd3c62c.tar.gz
\ No newline at end of file
diff --git a/contrib/src/opendht/fetch_and_patch.bat b/contrib/src/opendht/fetch_and_patch.bat
index 720cabec468e8624dd7c3c094c60e7cb54aaad41..5fd36b381aed41b7fdc1d38796e64bd5ffa32cf1 100644
--- a/contrib/src/opendht/fetch_and_patch.bat
+++ b/contrib/src/opendht/fetch_and_patch.bat
@@ -1,6 +1,6 @@
 set BUILD=%SRC%..\build
 
-set OPENDHT_VERSION=104a9e3b283d3b8d7d86e31b7d911ca000a6e7ad
+set OPENDHT_VERSION=ed642b0337653180e64cbe44c81a9df9cdd3c62c
 set OPENDHT_URL=https://github.com/savoirfairelinux/opendht/archive/%OPENDHT_VERSION%.tar.gz
 
 mkdir %BUILD%
diff --git a/contrib/src/opendht/rules.mak b/contrib/src/opendht/rules.mak
index 786da51287166f10caf1b2038c0fb753ccbb471d..d1bfc55ddc1f4632fe92f728a800402c9e9cdfcc 100644
--- a/contrib/src/opendht/rules.mak
+++ b/contrib/src/opendht/rules.mak
@@ -1,5 +1,5 @@
 # OPENDHT
-OPENDHT_VERSION := 104a9e3b283d3b8d7d86e31b7d911ca000a6e7ad
+OPENDHT_VERSION := ed642b0337653180e64cbe44c81a9df9cdd3c62c
 OPENDHT_URL := https://github.com/savoirfairelinux/opendht/archive/$(OPENDHT_VERSION).tar.gz
 
 PKGS += opendht
diff --git a/src/jamidht/namedirectory.cpp b/src/jamidht/namedirectory.cpp
index 32ea6d3a3190e7a55a11a0ea6af83ceb9543a8b1..1ffa1d8a610c7e053b0b3282aa09e614ba119989 100644
--- a/src/jamidht/namedirectory.cpp
+++ b/src/jamidht/namedirectory.cpp
@@ -122,7 +122,6 @@ NameDirectory::instance(const std::string& serverUrl, std::shared_ptr<dht::Logge
 
 void
 NameDirectory::setHeaderFields(Request& request){
-    request.set_header_field(restinio::http_field_t::host, request.get_url().host + ":" + request.get_url().service);
     request.set_header_field(restinio::http_field_t::user_agent, "JamiDHT");
     request.set_header_field(restinio::http_field_t::accept, "*/*");
     request.set_header_field(restinio::http_field_t::content_type, "application/json");
@@ -136,22 +135,12 @@ NameDirectory::lookupAddress(const std::string& addr, LookupCallback cb)
         cb(cacheResult, Response::found);
         return;
     }
-    auto request = std::make_shared<Request>(*httpContext_, resolver_, logger_);
+    auto request = std::make_shared<Request>(*httpContext_, resolver_, QUERY_ADDR + addr);
     auto reqid = request->id();
     try {
         request->set_connection_type(restinio::http_connection_header_t::keep_alive);
-        auto target_prefix = request->get_url().target;
-        if (target_prefix.back() == '/')
-            target_prefix.pop_back();
-        request->set_target(target_prefix + QUERY_ADDR + addr);
         request->set_method(restinio::http_method_get());
         setHeaderFields(*request);
-
-        std::string uri = serverUrl_;
-        if (uri.back() == '/')
-            uri.pop_back();
-        uri += QUERY_ADDR + addr;
-        JAMI_DBG("Address lookup for %s: %s", addr.c_str(), uri.c_str());
         request->add_on_state_change_callback([this, cb=std::move(cb), reqid, addr]
                                               (Request::State state, const dht::http::Response& response){
             if (state != Request::State::DONE)
@@ -224,23 +213,11 @@ NameDirectory::lookupName(const std::string& n, LookupCallback cb)
         cb(cacheResult, Response::found);
         return;
     }
-    auto request = std::make_shared<Request>(*httpContext_, resolver_, logger_);
+    auto request = std::make_shared<Request>(*httpContext_, resolver_, QUERY_NAME + name);
     auto reqid = request->id();
     try {
-        request->set_connection_type(restinio::http_connection_header_t::keep_alive);
-        auto target_prefix = request->get_url().target;
-        if (target_prefix.back() == '/')
-            target_prefix.pop_back();
-        request->set_target(target_prefix + QUERY_NAME + name);
         request->set_method(restinio::http_method_get());
         setHeaderFields(*request);
-
-        std::string uri = serverUrl_;
-        if (uri.back() == '/')
-            uri.pop_back();
-        uri += QUERY_NAME + name;
-        JAMI_DBG("Name lookup for %s: %s", name.c_str(), uri.c_str());
-
         request->add_on_state_change_callback([this, reqid, name, cb=std::move(cb)]
                                               (Request::State state, const dht::http::Response& response){
             if (state != Request::State::DONE)
@@ -344,14 +321,9 @@ void NameDirectory::registerName(const std::string& addr, const std::string& n,
                     jami::Blob(publickey.begin(), publickey.end()))  << "\"}";
         body = ss.str();
     }
-    auto request = std::make_shared<Request>(*httpContext_, resolver_, logger_);
+    auto request = std::make_shared<Request>(*httpContext_, resolver_, QUERY_NAME + name);
     auto reqid = request->id();
     try {
-        request->set_connection_type(restinio::http_connection_header_t::keep_alive);
-        auto target_prefix = request->get_url().target;
-        if (target_prefix.back() == '/')
-            target_prefix.pop_back();
-        request->set_target(target_prefix + QUERY_NAME + name);
         request->set_method(restinio::http_method_post());
         setHeaderFields(*request);
         request->set_body(body);