diff --git a/CMakeLists.txt b/CMakeLists.txt
index e810da75979105512819052f095816b83470584b..05e279e28c28171f8a0f64a58bec8c1758d2178b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -109,9 +109,6 @@ endif ()
 if (Restinio_INCLUDE_DIR)
     include_directories (SYSTEM "${Restinio_INCLUDE_DIR}")
 endif ()
-if (Restbed_INCLUDE_DIR)
-    include_directories (SYSTEM "${Restbed_INCLUDE_DIR}")
-endif ()
 if (Jsoncpp_INCLUDE_DIRS)
     include_directories (SYSTEM "${Jsoncpp_INCLUDE_DIRS}")
 endif ()
@@ -266,7 +263,7 @@ if (OPENDHT_STATIC)
         target_include_directories(opendht-static SYSTEM PRIVATE ${argon2_INCLUDE_DIRS})
     endif ()
     target_link_libraries(opendht-static
-        PRIVATE  ${Restbed_LIBRARY} ${argon2_LIBRARIES}
+        PRIVATE  ${argon2_LIBRARIES}
         PUBLIC ${CMAKE_THREAD_LIBS_INIT} ${GNUTLS_LIBRARIES} ${Nettle_LIBRARIES}
                ${Jsoncpp_LIBRARIES} ${FMT_LIBRARY} ${HTTP_PARSER_LIBRARY})
     install (TARGETS opendht-static DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT opendht)
@@ -288,7 +285,7 @@ if (OPENDHT_SHARED)
     endif ()
     target_link_libraries(opendht
         PRIVATE ${CMAKE_THREAD_LIBS_INIT} ${GNUTLS_LIBRARIES} ${Nettle_LIBRARIES}
-                ${Restbed_LIBRARY} ${Jsoncpp_LIBRARIES}
+                ${Jsoncpp_LIBRARIES}
                 ${FMT_LIBRARY} ${HTTP_PARSER_LIBRARY})
 
     install (TARGETS opendht DESTINATION ${CMAKE_INSTALL_LIBDIR} EXPORT opendht)
diff --git a/cmake/FindRestbed.cmake b/cmake/FindRestbed.cmake
deleted file mode 100644
index bdf58b818e7aad85edf88384bc161072503cd9d5..0000000000000000000000000000000000000000
--- a/cmake/FindRestbed.cmake
+++ /dev/null
@@ -1,16 +0,0 @@
-if(NOT Restbed_FOUND)
-    find_path (Restbed_INCLUDE_DIR restbed
-               HINTS
-               "/usr/include"
-               "/usr/local/include"
-               "/opt/local/include")
-    find_library(Restbed_LIBRARY restbed
-                 HINTS ${Restbed_ROOT_DIR} PATH_SUFFIXES lib)
-    include(FindPackageHandleStandardArgs)
-    find_package_handle_standard_args(Restbed DEFAULT_MSG Restbed_LIBRARY Restbed_INCLUDE_DIR)
-    if (Restbed_INCLUDE_DIR)
-        set(Restbed_FOUND TRUE)
-        set(Restbed_LIBRARIES ${Restbed_LIBRARY})
-        set(Restbed_INCLUDE_DIRS ${Restbed_INCLUDE_DIR})
-    endif()
-endif()
diff --git a/configure.ac b/configure.ac
index f18842e648ed24ce5012245bb7b52f7e7c0d6a69..ea0aa95dbdf2429fe89251130c413e3246970d84 100644
--- a/configure.ac
+++ b/configure.ac
@@ -142,8 +142,8 @@ AS_IF([test "x$have_jsoncpp" = "xyes"], [
 ])
 
 AM_COND_IF([PROXY_CLIENT_OR_SERVER], [
-	AC_CHECK_LIB(restbed, exit,, AC_MSG_ERROR([Missing restbed files]))
-	LDFLAGS="${LDFLAGS} -lrestbed"
+	#AC_CHECK_LIB(<libname>, exit,, AC_MSG_ERROR([Missing <libname> files]))
+	#LDFLAGS="${LDFLAGS} -l<libname>"
 ])
 
 CXXFLAGS="${CXXFLAGS} -DMSGPACK_DISABLE_LEGACY_NIL -DMSGPACK_DISABLE_LEGACY_CONVERT"
diff --git a/docker/DockerfileDeps b/docker/DockerfileDeps
index 0af9f19684dee39c52a5de22c9e61f289f8fed0a..0f2636073e115e9f562741f5a4a1ecbde3d9a2bd 100644
--- a/docker/DockerfileDeps
+++ b/docker/DockerfileDeps
@@ -2,13 +2,6 @@ FROM ubuntu:16.04
 MAINTAINER Adrien Béraud <adrien.beraud@savoirfairelinux.com>
 RUN apt-get update && apt-get install -y build-essential cmake git wget libncurses5-dev libreadline-dev nettle-dev libgnutls28-dev libuv1-dev  cython3 python3-dev libcppunit-dev libjsoncpp-dev libasio-dev libssl-dev python3-setuptools && apt-get clean
 
-# build restbed from sources
-RUN git clone --recursive https://github.com/corvusoft/restbed.git \
-	&& cd restbed && mkdir build && cd build \
-	&& cmake -DBUILD_TESTS=NO -DBUILD_EXAMPLES=NO -DBUILD_SSL=NO -DBUILD_SHARED=YES -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib .. \
-	&& make -j8 install \
-	&& cd .. && rm -rf restbed
-
 #build msgpack from source
 RUN wget https://github.com/msgpack/msgpack-c/releases/download/cpp-2.1.5/msgpack-2.1.5.tar.gz \
 	&& tar -xzf msgpack-2.1.5.tar.gz \
diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp
index 854cd1b10f83e57d4ad738485d9b8ecff21a4d59..b8b78ddc11e9bf3e68c04b3ab2e88f29351752ff 100644
--- a/src/dht_proxy_client.cpp
+++ b/src/dht_proxy_client.cpp
@@ -40,13 +40,13 @@ struct DhtProxyClient::Listener
     OpValueCache cache;
     ValueCallback cb;
     Value::Filter filter;
-    Sp<restbed::Request> req;
+    //Sp<restbed::Request> req;
     std::thread thread;
     unsigned callbackId;
     Sp<ListenState> state;
     Sp<Scheduler::Job> refreshJob;
-    Listener(OpValueCache&& c, const Sp<restbed::Request>& r, Value::Filter&& f)
-        : cache(std::move(c)), filter(std::move(f)),req(r) {}
+    Listener(OpValueCache&& c, /*const Sp<restbed::Request>& r*/ Value::Filter&& f)
+        : cache(std::move(c)), filter(std::move(f))/*,req(r)*/ {}
 };
 
 struct PermanentPut {
@@ -149,6 +149,7 @@ DhtProxyClient::cancelAllListeners()
 {
     std::lock_guard<std::mutex> lock(searchLock_);
     DHT_LOG.w("Cancelling all listeners for %zu searches", searches_.size());
+    /*
     for (auto& s: searches_) {
         s.second.ops.cancelAll([&](size_t token){
             auto l = s.second.listeners.find(token);
@@ -159,7 +160,7 @@ DhtProxyClient::cancelAllListeners()
                 l->second.state->cancel = true;
                 if (l->second.req) {
                     try {
-                        restbed::Http::close(l->second.req);
+                        //restbed::Http::close(l->second.req);
                     } catch (const std::exception& e) {
                         DHT_LOG.w("Error closing socket: %s", e.what());
                     }
@@ -170,6 +171,7 @@ DhtProxyClient::cancelAllListeners()
             s.second.listeners.erase(token);
         });
     }
+    */
 }
 
 void
@@ -505,6 +507,7 @@ DhtProxyClient::getProxyInfos()
     }
     statusThread_ = std::thread([this, serverHost, infoState]{
         try {
+        /*
             auto endpointStr = serverHost;
             auto protocol = std::string(proxy::HTTP_PROTO);
             auto protocolIdx = serverHost.find("://");
@@ -560,6 +563,7 @@ DhtProxyClient::getProxyInfos()
             for (auto& r : reqs)
                 r.get();
             reqs.clear();
+        */
         } catch (const std::exception& e) {
             DHT_LOG.e("Error sending proxy info request: %s", e.what());
         }
@@ -833,6 +837,7 @@ DhtProxyClient::doCancelListen(const InfoHash& key, size_t ltoken)
     listener.state->cancel = true;
     if (not deviceKey_.empty()) {
         // First, be sure to have a token
+        /*
         if (listener.thread.joinable()) {
             listener.thread.join();
         }
@@ -856,7 +861,9 @@ DhtProxyClient::doCancelListen(const InfoHash& key, size_t ltoken)
         } catch (const std::exception& e) {
             DHT_LOG.w(key, "[search %s] cancelListen: Http::async failed: %s", key.to_c_str(), e.what());
         }
+        */
     } else {
+            /*
         // Just stop the request
         if (listener.thread.joinable()) {
             // Close connection to stop listener
@@ -870,6 +877,7 @@ DhtProxyClient::doCancelListen(const InfoHash& key, size_t ltoken)
             }
             listener.thread.join();
         }
+        */
     }
     search->second.listeners.erase(it);
     DHT_LOG.d(key, "[search %s] cancelListen: %zu listener remaining", key.to_c_str(), search->second.listeners.size());
@@ -932,16 +940,19 @@ DhtProxyClient::restartListeners()
             auto& listener = l.second;
             if (auto state = listener.state)
                 state->cancel = true;
+            /*
             if (listener.req) {
                 try {
-                    restbed::Http::close(listener.req);
+                    //restbed::Http::close(listener.req);
                 } catch (const std::exception& e) {
                     DHT_LOG.w("Error closing socket: %s", e.what());
                 }
                 listener.req.reset();
             }
+            */
         }
     }
+    /*
     for (auto& search: searches_) {
         for (auto& l: search.second.listeners) {
             auto& listener = l.second;
@@ -963,6 +974,7 @@ DhtProxyClient::restartListeners()
             });
         }
     }
+    */
 }
 
 void
@@ -1057,12 +1069,13 @@ DhtProxyClient::resubscribe(const InfoHash& key, Listener& listener)
     scheduler.syncTime();
     DHT_LOG.d(key, "[search %s] resubscribe push listener", key.to_c_str());
     // Subscribe
+    /*
     auto state = listener.state;
     if (listener.thread.joinable()) {
         state->cancel = true;
         if (listener.req) {
             try {
-                restbed::Http::close(listener.req);
+                //restbed::Http::close(listener.req);
             } catch (const std::exception& e) {
                 DHT_LOG.w("Error closing socket: %s", e.what());
             }
@@ -1072,6 +1085,7 @@ DhtProxyClient::resubscribe(const InfoHash& key, Listener& listener)
     }
     state->cancel = false;
     state->ok = true;
+
     auto req = std::make_shared<restbed::Request>(restbed::Uri {serverHost_ + "/" + key.toString()});
     req->set_method("SUBSCRIBE");
     listener.req = req;
@@ -1081,6 +1095,7 @@ DhtProxyClient::resubscribe(const InfoHash& key, Listener& listener)
     listener.thread = std::thread([this, req, vcb, filter, state]() {
         //sendListen(req, vcb, filter, state, ListenMethod::RESUBSCRIBE);
     });
+    */
 #else
     (void) key;
     (void) listener;