diff --git a/buffet/bind_lambda.h b/buffet/bind_lambda.h
deleted file mode 100644
index 0172ab3..0000000
--- a/buffet/bind_lambda.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2014 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 BUFFET_BIND_LAMBDA_H_
-#define BUFFET_BIND_LAMBDA_H_
-
-#include <base/bind.h>
-
-////////////////////////////////////////////////////////////////////////////////
-// This file is an extension to base/bind_internal.h and adds a RunnableAdapter
-// class specialization that wraps a functor (including lambda objects), so
-// they can be used in base::Callback/base::Bind constructs.
-// By including this file you will gain the ability to write expressions like:
-//    base::Callback<int(int)> callback = base::Bind([](int value) {
-//      return value * value;
-//    });
-////////////////////////////////////////////////////////////////////////////////
-namespace base {
-namespace internal {
-
-// LambdaAdapter is a helper class that specializes on different function call
-// signatures and provides the RunType and Run() method required by
-// RunnableAdapter<> class.
-template <typename Lambda, typename Sig>
-class LambdaAdapter;
-
-// R(...)
-template <typename Lambda, typename R, typename... Args>
-class LambdaAdapter<Lambda, R(Lambda::*)(Args... args)> {
- public:
-  typedef R(RunType)(Args...);
-  LambdaAdapter(Lambda lambda) : lambda_(lambda) {}
-  R Run(Args... args) { return lambda_(args...); }
-
- private:
-  Lambda lambda_;
-};
-
-// R(...) const
-template <typename Lambda, typename R, typename... Args>
-class LambdaAdapter<Lambda, R(Lambda::*)(Args... args) const> {
- public:
-  typedef R(RunType)(Args...);
-  LambdaAdapter(Lambda lambda) : lambda_(lambda) {}
-  R Run(Args... args) { return lambda_(args...); }
-
- private:
-  Lambda lambda_;
-};
-
-template <typename Lambda>
-class RunnableAdapter : public LambdaAdapter<Lambda,
-                                             decltype(&Lambda::operator())> {
- public:
-  explicit RunnableAdapter(Lambda lambda) :
-      LambdaAdapter<Lambda, decltype(&Lambda::operator())>(lambda) {
-  }
-};
-
-
-}  // namespace internal
-}  // namespace base
-
-#endif  // BUFFET_BIND_LAMBDA_H_
diff --git a/buffet/device_registration_info_unittest.cc b/buffet/device_registration_info_unittest.cc
index 635b539..f883802 100644
--- a/buffet/device_registration_info_unittest.cc
+++ b/buffet/device_registration_info_unittest.cc
@@ -4,9 +4,9 @@
 
 #include <base/json/json_reader.h>
 #include <base/values.h>
+#include <chromeos/bind_lambda.h>
 #include <gtest/gtest.h>
 
-#include "buffet/bind_lambda.h"
 #include "buffet/commands/command_manager.h"
 #include "buffet/commands/unittest_utils.h"
 #include "buffet/device_registration_info.h"
diff --git a/buffet/http_transport_fake.cc b/buffet/http_transport_fake.cc
index 2c59cb3..d4b7f44 100644
--- a/buffet/http_transport_fake.cc
+++ b/buffet/http_transport_fake.cc
@@ -9,8 +9,8 @@
 #include <base/json/json_reader.h>
 #include <base/json/json_writer.h>
 #include <base/logging.h>
+#include <chromeos/bind_lambda.h>
 
-#include "buffet/bind_lambda.h"
 #include "buffet/http_connection_fake.h"
 #include "buffet/http_request.h"
 #include "buffet/mime_utils.h"
diff --git a/buffet/http_utils_unittest.cc b/buffet/http_utils_unittest.cc
index 190b566..22c2209 100644
--- a/buffet/http_utils_unittest.cc
+++ b/buffet/http_utils_unittest.cc
@@ -6,9 +6,9 @@
 #include <vector>
 
 #include <base/values.h>
+#include <chromeos/bind_lambda.h>
 #include <gtest/gtest.h>
 
-#include "buffet/bind_lambda.h"
 #include "buffet/http_transport_fake.h"
 #include "buffet/http_utils.h"
 #include "buffet/mime_utils.h"
