diff --git a/libweave/include/weave/device.h b/libweave/include/weave/device.h
index 660fad8..76b636d 100644
--- a/libweave/include/weave/device.h
+++ b/libweave/include/weave/device.h
@@ -14,6 +14,7 @@
 #include <weave/commands.h>
 #include <weave/config.h>
 #include <weave/export.h>
+#include <weave/http_client.h>
 #include <weave/http_server.h>
 #include <weave/mdns.h>
 #include <weave/network.h>
@@ -39,6 +40,7 @@
   virtual ~Device() = default;
 
   virtual void Start(const Options& options,
+                     HttpClient* http_client,
                      Network* network,
                      Mdns* mdns,
                      HttpServer* http_server) = 0;
diff --git a/libweave/libweave.gyp b/libweave/libweave.gyp
index be4d1d7..ba7e026 100644
--- a/libweave/libweave.gyp
+++ b/libweave/libweave.gyp
@@ -34,7 +34,6 @@
         'src/commands/user_role.cc',
         'src/device_manager.cc',
         'src/device_registration_info.cc',
-        'src/http_transport_client.cc',
         'src/notification/notification_parser.cc',
         'src/notification/pull_channel.cc',
         'src/notification/xml_node.cc',
diff --git a/libweave/src/device_manager.cc b/libweave/src/device_manager.cc
index 344c725..8fce1fb 100644
--- a/libweave/src/device_manager.cc
+++ b/libweave/src/device_manager.cc
@@ -7,13 +7,11 @@
 #include <string>
 
 #include <base/message_loop/message_loop.h>
-#include <chromeos/http/http_transport.h>
 
 #include "libweave/src/base_api_handler.h"
 #include "libweave/src/buffet_config.h"
 #include "libweave/src/commands/command_manager.h"
 #include "libweave/src/device_registration_info.h"
-#include "libweave/src/http_transport_client.h"
 #include "libweave/src/privet/privet_manager.h"
 #include "libweave/src/states/state_change_queue.h"
 #include "libweave/src/states/state_manager.h"
@@ -24,8 +22,6 @@
 
 // Max of 100 state update events should be enough in the queue.
 const size_t kMaxStateChangeQueueSize = 100;
-// The number of seconds each HTTP request will be allowed before timing out.
-const int kRequestTimeoutSeconds = 30;
 
 }  // namespace
 
@@ -34,6 +30,7 @@
 DeviceManager::~DeviceManager() {}
 
 void DeviceManager::Start(const Options& options,
+                          HttpClient* http_client,
                           Network* network,
                           Mdns* mdns,
                           HttpServer* http_server) {
@@ -44,18 +41,13 @@
   state_manager_ = std::make_shared<StateManager>(state_change_queue_.get());
   state_manager_->Startup();
 
-  auto transport = chromeos::http::Transport::CreateDefault();
-  transport->SetDefaultTimeout(
-      base::TimeDelta::FromSeconds(kRequestTimeoutSeconds));
-
   std::unique_ptr<BuffetConfig> config{new BuffetConfig{options.state_path}};
   config->Load(options.config_path);
 
-  http_client_.reset(new buffet::HttpTransportClient{transport});
   // TODO(avakulenko): Figure out security implications of storing
   // device info state data unencrypted.
   device_info_.reset(new DeviceRegistrationInfo(
-      command_manager_, state_manager_, std::move(config), http_client_.get(),
+      command_manager_, state_manager_, std::move(config), http_client,
       base::MessageLoop::current()->task_runner(), options.xmpp_enabled,
       network));
   base_api_handler_.reset(
diff --git a/libweave/src/device_manager.h b/libweave/src/device_manager.h
index 2e65ffe..216c9ff 100644
--- a/libweave/src/device_manager.h
+++ b/libweave/src/device_manager.h
@@ -8,10 +8,6 @@
 #include <base/memory/weak_ptr.h>
 #include <weave/device.h>
 
-namespace buffet {
-class HttpTransportClient;
-}  // namespace buffet
-
 namespace weave {
 
 class BaseApiHandler;
@@ -31,6 +27,7 @@
   ~DeviceManager() override;
 
   void Start(const Options& options,
+             HttpClient* http_client,
              Network* network,
              Mdns* mdns,
              HttpServer* http_server) override;
@@ -49,8 +46,6 @@
 
   void OnWiFiBootstrapStateChanged(weave::WifiSetupState state);
 
-  // TODO(vitalybuka): Move to buffet.
-  std::unique_ptr<buffet::HttpTransportClient> http_client_;
   std::shared_ptr<CommandManager> command_manager_;
   std::unique_ptr<StateChangeQueue> state_change_queue_;
   std::shared_ptr<StateManager> state_manager_;
diff --git a/libweave/src/device_registration_info.h b/libweave/src/device_registration_info.h
index 3c8dff3..6f94573 100644
--- a/libweave/src/device_registration_info.h
+++ b/libweave/src/device_registration_info.h
@@ -21,7 +21,6 @@
 #include <chromeos/backoff_entry.h>
 #include <chromeos/data_encoding.h>
 #include <chromeos/errors/error.h>
-#include <chromeos/http/http_transport.h>
 #include <weave/cloud.h>
 #include <weave/config.h>
 #include <weave/http_client.h>
diff --git a/libweave/src/http_transport_client.cc b/libweave/src/http_transport_client.cc
deleted file mode 100644
index dbe0ffc..0000000
--- a/libweave/src/http_transport_client.cc
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2015 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "libweave/src/http_transport_client.h"
-
-#include <base/bind.h>
-#include <chromeos/errors/error.h>
-#include <chromeos/http/http_request.h>
-#include <chromeos/http/http_utils.h>
-
-namespace buffet {
-
-namespace {
-
-class ResponseImpl : public weave::HttpClient::Response {
- public:
-  ~ResponseImpl() override = default;
-  explicit ResponseImpl(std::unique_ptr<chromeos::http::Response> response)
-      : response_{std::move(response)},
-        data_{response_->ExtractDataAsString()} {}
-
-  // weave::HttpClient::Response implementation
-  int GetStatusCode() const override { return response_->GetStatusCode(); }
-
-  std::string GetContentType() const override {
-    return response_->GetContentType();
-  }
-
-  const std::string& GetData() const override { return data_; }
-
- private:
-  std::unique_ptr<chromeos::http::Response> response_;
-  std::string data_;
-  DISALLOW_COPY_AND_ASSIGN(ResponseImpl);
-};
-
-void OnSuccessCallback(
-    const weave::HttpClient::SuccessCallback& success_callback,
-    int id,
-    std::unique_ptr<chromeos::http::Response> response) {
-  success_callback.Run(id, ResponseImpl{std::move(response)});
-}
-
-void OnErrorCallback(const weave::HttpClient::ErrorCallback& error_callback,
-                     int id,
-                     const chromeos::Error* error) {
-  error_callback.Run(id, error);
-}
-
-}  // anonymous namespace
-
-HttpTransportClient::HttpTransportClient(
-    const std::shared_ptr<chromeos::http::Transport>& transport)
-    : transport_{transport} {}
-
-HttpTransportClient::~HttpTransportClient() {}
-
-std::unique_ptr<weave::HttpClient::Response>
-HttpTransportClient::SendRequestAndBlock(const std::string& method,
-                                         const std::string& url,
-                                         const std::string& data,
-                                         const std::string& mime_type,
-                                         const Headers& headers,
-                                         chromeos::ErrorPtr* error) {
-  return std::unique_ptr<weave::HttpClient::Response>{
-      new ResponseImpl{chromeos::http::SendRequestAndBlock(
-          method, url, data.data(), data.size(), mime_type, headers, transport_,
-          error)}};
-}
-
-int HttpTransportClient::SendRequest(const std::string& method,
-                                     const std::string& url,
-                                     const std::string& data,
-                                     const std::string& mime_type,
-                                     const Headers& headers,
-                                     const SuccessCallback& success_callback,
-                                     const ErrorCallback& error_callback) {
-  return chromeos::http::SendRequest(
-      method, url, data.data(), data.size(), mime_type, headers, transport_,
-      base::Bind(&OnSuccessCallback, success_callback),
-      base::Bind(&OnErrorCallback, error_callback));
-}
-
-}  // namespace buffet
diff --git a/libweave/src/http_transport_client.h b/libweave/src/http_transport_client.h
deleted file mode 100644
index 0eb5579..0000000
--- a/libweave/src/http_transport_client.h
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2015 The Chromium OS Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef LIBWEAVE_SRC_HTTP_TRANSPORT_CLIENT_H_
-#define LIBWEAVE_SRC_HTTP_TRANSPORT_CLIENT_H_
-
-#include <memory>
-#include <string>
-
-#include <weave/http_client.h>
-
-namespace chromeos {
-namespace http {
-class Transport;
-}
-}
-
-namespace buffet {
-
-class HttpTransportClient : public weave::HttpClient {
- public:
-  explicit HttpTransportClient(
-      const std::shared_ptr<chromeos::http::Transport>& transport);
-
-  ~HttpTransportClient() override;
-
-  // weave::HttpClient implementation.
-  std::unique_ptr<Response> SendRequestAndBlock(
-      const std::string& method,
-      const std::string& url,
-      const std::string& data,
-      const std::string& mime_type,
-      const Headers& headers,
-      chromeos::ErrorPtr* error) override;
-
-  int SendRequest(const std::string& method,
-                  const std::string& url,
-                  const std::string& data,
-                  const std::string& mime_type,
-                  const Headers& headers,
-                  const SuccessCallback& success_callback,
-                  const ErrorCallback& error_callback) override;
-
- private:
-  std::shared_ptr<chromeos::http::Transport> transport_;
-  DISALLOW_COPY_AND_ASSIGN(HttpTransportClient);
-};
-
-}  // namespace buffet
-
-#endif  // LIBWEAVE_SRC_HTTP_TRANSPORT_CLIENT_H_
