diff --git a/BUILD b/BUILD
index d75bd4205fdf366ec00ff5f5b628d258126899a6..276920f4b6ddfb7d1550ddd7ee3b280853451aec 100644
--- a/BUILD
+++ b/BUILD
@@ -635,7 +635,6 @@ cc_library(
     "src/cpp/server/secure_server_credentials.h",
     "src/cpp/client/channel.h",
     "src/cpp/common/create_auth_context.h",
-    "src/cpp/server/thread_pool.h",
     "src/cpp/client/secure_channel_arguments.cc",
     "src/cpp/client/secure_credentials.cc",
     "src/cpp/common/secure_auth_context.cc",
@@ -703,6 +702,7 @@ cc_library(
     "include/grpc++/status.h",
     "include/grpc++/status_code_enum.h",
     "include/grpc++/stream.h",
+    "include/grpc++/thread_pool.h",
     "include/grpc++/thread_pool_interface.h",
     "include/grpc++/time.h",
   ],
@@ -723,7 +723,6 @@ cc_library(
   srcs = [
     "src/cpp/client/channel.h",
     "src/cpp/common/create_auth_context.h",
-    "src/cpp/server/thread_pool.h",
     "src/cpp/common/insecure_create_auth_context.cc",
     "src/cpp/client/channel.cc",
     "src/cpp/client/channel_arguments.cc",
@@ -787,6 +786,7 @@ cc_library(
     "include/grpc++/status.h",
     "include/grpc++/status_code_enum.h",
     "include/grpc++/stream.h",
+    "include/grpc++/thread_pool.h",
     "include/grpc++/thread_pool_interface.h",
     "include/grpc++/time.h",
   ],
diff --git a/Makefile b/Makefile
index 57ab6fed1529e6515427d76cb7b14f8823d60265..c216a8f445ade2d1575687048dc40657356566f3 100644
--- a/Makefile
+++ b/Makefile
@@ -3749,6 +3749,7 @@ PUBLIC_HEADERS_CXX += \
     include/grpc++/status.h \
     include/grpc++/status_code_enum.h \
     include/grpc++/stream.h \
+    include/grpc++/thread_pool.h \
     include/grpc++/thread_pool_interface.h \
     include/grpc++/time.h \
 
@@ -3990,6 +3991,7 @@ PUBLIC_HEADERS_CXX += \
     include/grpc++/status.h \
     include/grpc++/status_code_enum.h \
     include/grpc++/stream.h \
+    include/grpc++/thread_pool.h \
     include/grpc++/thread_pool_interface.h \
     include/grpc++/time.h \
 
diff --git a/build.json b/build.json
index 121637204e1ac831c8cd7b2d0a9ac5986c2850cc..cb4971eb1f3882cc75bde46bad8b02964223e9d2 100644
--- a/build.json
+++ b/build.json
@@ -64,13 +64,13 @@
         "include/grpc++/status.h",
         "include/grpc++/status_code_enum.h",
         "include/grpc++/stream.h",
+        "include/grpc++/thread_pool.h",
         "include/grpc++/thread_pool_interface.h",
         "include/grpc++/time.h"
       ],
       "headers": [
         "src/cpp/client/channel.h",
-        "src/cpp/common/create_auth_context.h",
-        "src/cpp/server/thread_pool.h"
+        "src/cpp/common/create_auth_context.h"
       ],
       "src": [
         "src/cpp/client/channel.cc",
diff --git a/src/cpp/server/thread_pool.h b/include/grpc++/thread_pool.h
similarity index 93%
rename from src/cpp/server/thread_pool.h
rename to include/grpc++/thread_pool.h
index 3b70249bf9af9e6d72e4c60f6c750c798faa5ef5..9f0cbfbae978425d0378f5c27015d887b6aacf10 100644
--- a/src/cpp/server/thread_pool.h
+++ b/include/grpc++/thread_pool.h
@@ -45,10 +45,10 @@
 
 namespace grpc {
 
-class ThreadPool GRPC_FINAL : public ThreadPoolInterface {
+class FixedSizeThreadPool GRPC_FINAL : public ThreadPoolInterface {
  public:
-  explicit ThreadPool(int num_threads);
-  ~ThreadPool();
+  explicit FixedSizeThreadPool(int num_threads);
+  ~FixedSizeThreadPool();
 
   void ScheduleCallback(const std::function<void()>& callback) GRPC_OVERRIDE;
 
@@ -62,8 +62,6 @@ class ThreadPool GRPC_FINAL : public ThreadPoolInterface {
   void ThreadFunc();
 };
 
-ThreadPoolInterface* CreateDefaultThreadPool();
-
 }  // namespace grpc
 
 #endif  // GRPC_INTERNAL_CPP_SERVER_THREAD_POOL_H
diff --git a/include/grpc++/thread_pool_interface.h b/include/grpc++/thread_pool_interface.h
index ead307f6a2f588c283f082c3ef3abe5f82699280..ac4458d5303e746b557f54b93363d6a6a35a8fe6 100644
--- a/include/grpc++/thread_pool_interface.h
+++ b/include/grpc++/thread_pool_interface.h
@@ -47,6 +47,8 @@ class ThreadPoolInterface {
   virtual void ScheduleCallback(const std::function<void()>& callback) = 0;
 };
 
+ThreadPoolInterface* CreateDefaultThreadPool();
+
 }  // namespace grpc
 
 #endif  // GRPCXX_THREAD_POOL_INTERFACE_H
diff --git a/src/cpp/server/create_default_thread_pool.cc b/src/cpp/server/create_default_thread_pool.cc
index 89c1d7e929559681971bc775ce341f27b46f7a63..6d079dfab0b877c37056677515c9de5fd02f78dc 100644
--- a/src/cpp/server/create_default_thread_pool.cc
+++ b/src/cpp/server/create_default_thread_pool.cc
@@ -32,7 +32,7 @@
  */
 
 #include <grpc/support/cpu.h>
-#include "src/cpp/server/thread_pool.h"
+#include <grpc++/thread_pool.h>
 
 #ifndef GRPC_CUSTOM_DEFAULT_THREAD_POOL
 
@@ -41,7 +41,7 @@ namespace grpc {
 ThreadPoolInterface* CreateDefaultThreadPool() {
    int cores = gpr_cpu_num_cores();
    if (!cores) cores = 4;
-   return new ThreadPool(cores);
+   return new FixedSizeThreadPool(cores);
 }
 
 }  // namespace grpc
diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc
index 86c78f05ff91a2d51e9ad62c677abff39cc01d6e..cf7482c73b62b82041414fd4e63cb5eb4f8132c3 100644
--- a/src/cpp/server/server_builder.cc
+++ b/src/cpp/server/server_builder.cc
@@ -37,7 +37,7 @@
 #include <grpc/support/log.h>
 #include <grpc++/impl/service_type.h>
 #include <grpc++/server.h>
-#include "src/cpp/server/thread_pool.h"
+#include <grpc++/thread_pool.h>
 
 namespace grpc {
 
diff --git a/src/cpp/server/thread_pool.cc b/src/cpp/server/thread_pool.cc
index 118cabcb6127dc86800850d6197e58ef82aeadaa..3a28d36cbbca0aabf5fcb7ebdcb562ebdcd0445d 100644
--- a/src/cpp/server/thread_pool.cc
+++ b/src/cpp/server/thread_pool.cc
@@ -33,12 +33,11 @@
 
 #include <grpc++/impl/sync.h>
 #include <grpc++/impl/thd.h>
-
-#include "src/cpp/server/thread_pool.h"
+#include <grpc++/thread_pool.h>
 
 namespace grpc {
 
-void ThreadPool::ThreadFunc() {
+void FixedSizeThreadPool::ThreadFunc() {
   for (;;) {
     // Wait until work is available or we are shutting down.
     grpc::unique_lock<grpc::mutex> lock(mu_);
@@ -58,13 +57,14 @@ void ThreadPool::ThreadFunc() {
   }
 }
 
-ThreadPool::ThreadPool(int num_threads) : shutdown_(false) {
+FixedSizeThreadPool::FixedSizeThreadPool(int num_threads) : shutdown_(false) {
   for (int i = 0; i < num_threads; i++) {
-    threads_.push_back(new grpc::thread(&ThreadPool::ThreadFunc, this));
+    threads_.push_back(
+        new grpc::thread(&FixedSizeThreadPool::ThreadFunc, this));
   }
 }
 
-ThreadPool::~ThreadPool() {
+FixedSizeThreadPool::~FixedSizeThreadPool() {
   {
     grpc::lock_guard<grpc::mutex> lock(mu_);
     shutdown_ = true;
@@ -76,7 +76,8 @@ ThreadPool::~ThreadPool() {
   }
 }
 
-void ThreadPool::ScheduleCallback(const std::function<void()>& callback) {
+void FixedSizeThreadPool::ScheduleCallback(
+    const std::function<void()>& callback) {
   grpc::lock_guard<grpc::mutex> lock(mu_);
   callbacks_.push(callback);
   cv_.notify_one();
diff --git a/test/cpp/end2end/client_crash_test.cc b/test/cpp/end2end/client_crash_test.cc
index 645226f3754d00b319f5ed155b853f4a10c585db..0b7f1b8e02d82d886e5803e608aac8f6c1707ea5 100644
--- a/test/cpp/end2end/client_crash_test.cc
+++ b/test/cpp/end2end/client_crash_test.cc
@@ -37,7 +37,6 @@
 #include "test/core/util/test_config.h"
 #include "test/cpp/util/echo_duplicate.grpc.pb.h"
 #include "test/cpp/util/echo.grpc.pb.h"
-#include "src/cpp/server/thread_pool.h"
 #include <grpc++/channel_arguments.h>
 #include <grpc++/channel_interface.h>
 #include <grpc++/client_context.h>
@@ -49,6 +48,7 @@
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
 #include <grpc++/stream.h>
+#include <grpc++/thread_pool.h>
 #include <grpc++/time.h>
 #include <gtest/gtest.h>
 
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index 207dad5282738bd064a23a4f0f2755b2f10ff55a..1283dd072fff2d983528c3f2e7c392c2cc5972f0 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -35,7 +35,6 @@
 #include <thread>
 
 #include "src/core/security/credentials.h"
-#include "src/cpp/server/thread_pool.h"
 #include "test/core/util/port.h"
 #include "test/core/util/test_config.h"
 #include "test/cpp/util/echo_duplicate.grpc.pb.h"
@@ -52,6 +51,7 @@
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
 #include <grpc++/stream.h>
+#include <grpc++/thread_pool.h>
 #include <grpc++/time.h>
 #include <gtest/gtest.h>
 
@@ -260,7 +260,7 @@ class End2endTest : public ::testing::Test {
   TestServiceImpl service_;
   TestServiceImpl special_service_;
   TestServiceImplDupPkg dup_pkg_service_;
-  ThreadPool thread_pool_;
+  FixedSizeThreadPool thread_pool_;
 };
 
 static void SendRpc(grpc::cpp::test::util::TestService::Stub* stub,
diff --git a/test/cpp/end2end/mock_test.cc b/test/cpp/end2end/mock_test.cc
index 2809ab8d3cfb21909e9bfe95b30b60efa49577d0..0cffaf6dde8849f8460599282b846e1653aa7e54 100644
--- a/test/cpp/end2end/mock_test.cc
+++ b/test/cpp/end2end/mock_test.cc
@@ -37,7 +37,6 @@
 #include "test/core/util/test_config.h"
 #include "test/cpp/util/echo_duplicate.grpc.pb.h"
 #include "test/cpp/util/echo.grpc.pb.h"
-#include "src/cpp/server/thread_pool.h"
 #include <grpc++/channel_arguments.h>
 #include <grpc++/channel_interface.h>
 #include <grpc++/client_context.h>
@@ -49,6 +48,7 @@
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
 #include <grpc++/stream.h>
+#include <grpc++/thread_pool.h>
 #include <grpc++/time.h>
 #include <gtest/gtest.h>
 
@@ -258,7 +258,7 @@ class MockTest : public ::testing::Test {
   std::unique_ptr<Server> server_;
   std::ostringstream server_address_;
   TestServiceImpl service_;
-  ThreadPool thread_pool_;
+  FixedSizeThreadPool thread_pool_;
 };
 
 // Do one real rpc and one mocked one
diff --git a/test/cpp/end2end/server_crash_test.cc b/test/cpp/end2end/server_crash_test.cc
index 4d4d590bdd701a5d012703e3ff8cd0bd811c8d4b..d8b31a9d6e274fc07309fdc3f89418916c5ccee3 100644
--- a/test/cpp/end2end/server_crash_test.cc
+++ b/test/cpp/end2end/server_crash_test.cc
@@ -37,7 +37,6 @@
 #include "test/core/util/test_config.h"
 #include "test/cpp/util/echo_duplicate.grpc.pb.h"
 #include "test/cpp/util/echo.grpc.pb.h"
-#include "src/cpp/server/thread_pool.h"
 #include <grpc++/channel_arguments.h>
 #include <grpc++/channel_interface.h>
 #include <grpc++/client_context.h>
@@ -49,6 +48,7 @@
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
 #include <grpc++/stream.h>
+#include <grpc++/thread_pool.h>
 #include <grpc++/time.h>
 #include <gtest/gtest.h>
 
diff --git a/test/cpp/end2end/thread_stress_test.cc b/test/cpp/end2end/thread_stress_test.cc
index 0b4d94256665989cad2d02fd47fae72ad29c0ab8..0d6d542bbb9849c6d4346398ad16c4cb07e5f67a 100644
--- a/test/cpp/end2end/thread_stress_test.cc
+++ b/test/cpp/end2end/thread_stress_test.cc
@@ -38,7 +38,6 @@
 #include "test/core/util/test_config.h"
 #include "test/cpp/util/echo_duplicate.grpc.pb.h"
 #include "test/cpp/util/echo.grpc.pb.h"
-#include "src/cpp/server/thread_pool.h"
 #include <grpc++/channel_arguments.h>
 #include <grpc++/channel_interface.h>
 #include <grpc++/client_context.h>
@@ -50,6 +49,7 @@
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
 #include <grpc++/stream.h>
+#include <grpc++/thread_pool.h>
 #include <grpc++/time.h>
 #include <gtest/gtest.h>
 
@@ -206,7 +206,7 @@ class End2endTest : public ::testing::Test {
   const int kMaxMessageSize_;
   TestServiceImpl service_;
   TestServiceImplDupPkg dup_pkg_service_;
-  ThreadPool thread_pool_;
+  FixedSizeThreadPool thread_pool_;
 };
 
 static void SendRpc(grpc::cpp::test::util::TestService::Stub* stub,
diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc
index f5251e961b9323916f6021cb50a43b1fe41a980d..4a91304f45ef95fd111883614428aee9ec056d66 100644
--- a/test/cpp/qps/server_async.cc
+++ b/test/cpp/qps/server_async.cc
@@ -51,8 +51,8 @@
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
 #include <grpc++/stream.h>
+#include <grpc++/thread_pool.h>
 #include <gtest/gtest.h>
-#include "src/cpp/server/thread_pool.h"
 #include "test/cpp/qps/qpstest.grpc.pb.h"
 #include "test/cpp/qps/server.h"
 
diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc
index bc00de9cedb77220c8963dcae57596326908cffb..1a8516ded66b0d515b04a3aa822d455cdc3aed64 100644
--- a/test/cpp/qps/server_sync.cc
+++ b/test/cpp/qps/server_sync.cc
@@ -46,7 +46,7 @@
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
 #include <grpc++/stream.h>
-#include "src/cpp/server/thread_pool.h"
+#include <grpc++/thread_pool.h>
 #include "test/cpp/qps/qpstest.grpc.pb.h"
 #include "test/cpp/qps/server.h"
 #include "test/cpp/qps/timer.h"
@@ -111,7 +111,7 @@ class SynchronousServer GRPC_FINAL : public grpc::testing::Server {
   }
 
   TestServiceImpl service_;
-  ThreadPool thread_pool_;
+  FixedSizeThreadPool thread_pool_;
   std::unique_ptr<grpc::Server> impl_;
 };
 
diff --git a/test/cpp/server/thread_pool_test.cc b/test/cpp/server/thread_pool_test.cc
index 824d78531607bf8b422b094e129955a329a704f3..d906f76f42901275d1ecea6110ac915595b3ed59 100644
--- a/test/cpp/server/thread_pool_test.cc
+++ b/test/cpp/server/thread_pool_test.cc
@@ -35,7 +35,7 @@
 #include <functional>
 #include <mutex>
 
-#include "src/cpp/server/thread_pool.h"
+#include <grpc++/thread_pool.h>
 #include <gtest/gtest.h>
 
 namespace grpc {
@@ -45,7 +45,7 @@ class ThreadPoolTest : public ::testing::Test {
   ThreadPoolTest() : thread_pool_(4) {}
 
  protected:
-  ThreadPool thread_pool_;
+  FixedSizeThreadPool thread_pool_;
 };
 
 void Callback(std::mutex* mu, std::condition_variable* cv, bool* done) {
diff --git a/test/cpp/util/cli_call_test.cc b/test/cpp/util/cli_call_test.cc
index 6cf86ea89bf5eb70703eb42997878b8b052564d3..fd2662f6dc56a53b59588a2e9aea64c417875484 100644
--- a/test/cpp/util/cli_call_test.cc
+++ b/test/cpp/util/cli_call_test.cc
@@ -34,7 +34,6 @@
 #include "test/core/util/test_config.h"
 #include "test/cpp/util/cli_call.h"
 #include "test/cpp/util/echo.grpc.pb.h"
-#include "src/cpp/server/thread_pool.h"
 #include <grpc++/channel_arguments.h>
 #include <grpc++/channel_interface.h>
 #include <grpc++/client_context.h>
@@ -45,6 +44,7 @@
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
 #include <grpc++/status.h>
+#include <grpc++/thread_pool.h>
 #include "test/core/util/port.h"
 #include <gtest/gtest.h>
 
@@ -102,7 +102,7 @@ class CliCallTest : public ::testing::Test {
   std::unique_ptr<Server> server_;
   std::ostringstream server_address_;
   TestServiceImpl service_;
-  ThreadPool thread_pool_;
+  FixedSizeThreadPool thread_pool_;
 };
 
 // Send a rpc with a normal stub and then a CliCall. Verify they match.
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index feb7ad8bb93bfd6ab171ed5d10ea4ef843c0511c..e82e3bca4ed0bd52d68710060f91838bf305f137 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -796,6 +796,7 @@ include/grpc++/slice.h \
 include/grpc++/status.h \
 include/grpc++/status_code_enum.h \
 include/grpc++/stream.h \
+include/grpc++/thread_pool.h \
 include/grpc++/thread_pool_interface.h \
 include/grpc++/time.h
 
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 67718d8976f10b03791875274ff579a6d2ccb51e..bd09fb55a2b0cddbacc04770562b7577d72fcd99 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -796,6 +796,7 @@ include/grpc++/slice.h \
 include/grpc++/status.h \
 include/grpc++/status_code_enum.h \
 include/grpc++/stream.h \
+include/grpc++/thread_pool.h \
 include/grpc++/thread_pool_interface.h \
 include/grpc++/time.h \
 src/cpp/client/secure_credentials.h \
@@ -803,7 +804,6 @@ src/cpp/common/secure_auth_context.h \
 src/cpp/server/secure_server_credentials.h \
 src/cpp/client/channel.h \
 src/cpp/common/create_auth_context.h \
-src/cpp/server/thread_pool.h \
 src/cpp/client/secure_channel_arguments.cc \
 src/cpp/client/secure_credentials.cc \
 src/cpp/common/secure_auth_context.cc \
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 0493e06f58eb99e4526fd07fbd97236b7a7b01af..b5166ea05ab79a8781cb5bf6332e6caf3a2bf6a0 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -9524,14 +9524,14 @@
       "include/grpc++/status.h", 
       "include/grpc++/status_code_enum.h", 
       "include/grpc++/stream.h", 
+      "include/grpc++/thread_pool.h", 
       "include/grpc++/thread_pool_interface.h", 
       "include/grpc++/time.h", 
       "src/cpp/client/channel.h", 
       "src/cpp/client/secure_credentials.h", 
       "src/cpp/common/create_auth_context.h", 
       "src/cpp/common/secure_auth_context.h", 
-      "src/cpp/server/secure_server_credentials.h", 
-      "src/cpp/server/thread_pool.h"
+      "src/cpp/server/secure_server_credentials.h"
     ], 
     "language": "c++", 
     "name": "grpc++", 
@@ -9572,6 +9572,7 @@
       "include/grpc++/status.h", 
       "include/grpc++/status_code_enum.h", 
       "include/grpc++/stream.h", 
+      "include/grpc++/thread_pool.h", 
       "include/grpc++/thread_pool_interface.h", 
       "include/grpc++/time.h", 
       "src/cpp/client/channel.cc", 
@@ -9604,7 +9605,6 @@
       "src/cpp/server/server_context.cc", 
       "src/cpp/server/server_credentials.cc", 
       "src/cpp/server/thread_pool.cc", 
-      "src/cpp/server/thread_pool.h", 
       "src/cpp/util/byte_buffer.cc", 
       "src/cpp/util/slice.cc", 
       "src/cpp/util/status.cc", 
@@ -9695,11 +9695,11 @@
       "include/grpc++/status.h", 
       "include/grpc++/status_code_enum.h", 
       "include/grpc++/stream.h", 
+      "include/grpc++/thread_pool.h", 
       "include/grpc++/thread_pool_interface.h", 
       "include/grpc++/time.h", 
       "src/cpp/client/channel.h", 
-      "src/cpp/common/create_auth_context.h", 
-      "src/cpp/server/thread_pool.h"
+      "src/cpp/common/create_auth_context.h"
     ], 
     "language": "c++", 
     "name": "grpc++_unsecure", 
@@ -9740,6 +9740,7 @@
       "include/grpc++/status.h", 
       "include/grpc++/status_code_enum.h", 
       "include/grpc++/stream.h", 
+      "include/grpc++/thread_pool.h", 
       "include/grpc++/thread_pool_interface.h", 
       "include/grpc++/time.h", 
       "src/cpp/client/channel.cc", 
@@ -9765,7 +9766,6 @@
       "src/cpp/server/server_context.cc", 
       "src/cpp/server/server_credentials.cc", 
       "src/cpp/server/thread_pool.cc", 
-      "src/cpp/server/thread_pool.h", 
       "src/cpp/util/byte_buffer.cc", 
       "src/cpp/util/slice.cc", 
       "src/cpp/util/status.cc", 
diff --git a/vsprojects/grpc++/grpc++.vcxproj b/vsprojects/grpc++/grpc++.vcxproj
index c1a32656cfc697568d4ac6ce60b49da373f7e370..9739c16969a4ab48b984b28a4d31b2eaa947bc15 100644
--- a/vsprojects/grpc++/grpc++.vcxproj
+++ b/vsprojects/grpc++/grpc++.vcxproj
@@ -182,6 +182,7 @@
     <ClInclude Include="..\..\include\grpc++\status.h" />
     <ClInclude Include="..\..\include\grpc++\status_code_enum.h" />
     <ClInclude Include="..\..\include\grpc++\stream.h" />
+    <ClInclude Include="..\..\include\grpc++\thread_pool.h" />
     <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h" />
     <ClInclude Include="..\..\include\grpc++\time.h" />
   </ItemGroup>
@@ -191,7 +192,6 @@
     <ClInclude Include="..\..\src\cpp\server\secure_server_credentials.h" />
     <ClInclude Include="..\..\src\cpp\client\channel.h" />
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h" />
-    <ClInclude Include="..\..\src\cpp\server\thread_pool.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\cpp\client\secure_channel_arguments.cc">
diff --git a/vsprojects/grpc++/grpc++.vcxproj.filters b/vsprojects/grpc++/grpc++.vcxproj.filters
index e63c77a53d8d116c8649ec0cbc0b4e6d8fdf86bf..e8a19e4997ad0d551a5cac45f60c79fdd856d297 100644
--- a/vsprojects/grpc++/grpc++.vcxproj.filters
+++ b/vsprojects/grpc++/grpc++.vcxproj.filters
@@ -198,6 +198,9 @@
     <ClInclude Include="..\..\include\grpc++\stream.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\thread_pool.h">
+      <Filter>include\grpc++</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
@@ -221,9 +224,6 @@
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h">
       <Filter>src\cpp\common</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\src\cpp\server\thread_pool.h">
-      <Filter>src\cpp\server</Filter>
-    </ClInclude>
   </ItemGroup>
 
   <ItemGroup>
diff --git a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
index 944e7e00013668036b2e6b02859955c3211f4dc8..3aee96ac152b1d029448c024c058018119a3339c 100644
--- a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -182,13 +182,13 @@
     <ClInclude Include="..\..\include\grpc++\status.h" />
     <ClInclude Include="..\..\include\grpc++\status_code_enum.h" />
     <ClInclude Include="..\..\include\grpc++\stream.h" />
+    <ClInclude Include="..\..\include\grpc++\thread_pool.h" />
     <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h" />
     <ClInclude Include="..\..\include\grpc++\time.h" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\cpp\client\channel.h" />
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h" />
-    <ClInclude Include="..\..\src\cpp\server\thread_pool.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\cpp\common\insecure_create_auth_context.cc">
diff --git a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index 73b0a5dccdb5571c1b24ccf878814cc29e30ef0e..d2dbd2ad42af30afcfa5407a88ed99ea167162c5 100644
--- a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -186,6 +186,9 @@
     <ClInclude Include="..\..\include\grpc++\stream.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\thread_pool.h">
+      <Filter>include\grpc++</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
@@ -200,9 +203,6 @@
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h">
       <Filter>src\cpp\common</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\src\cpp\server\thread_pool.h">
-      <Filter>src\cpp\server</Filter>
-    </ClInclude>
   </ItemGroup>
 
   <ItemGroup>