diff --git a/test/cpp/src/StressTest.cpp b/test/cpp/src/StressTest.cpp
index 585f89a..f4c281c 100644
--- a/test/cpp/src/StressTest.cpp
+++ b/test/cpp/src/StressTest.cpp
@@ -18,7 +18,7 @@
  */
 
 #include <thrift/concurrency/ThreadManager.h>
-#include <thrift/concurrency/PlatformThreadFactory.h>
+#include <thrift/concurrency/ThreadFactory.h>
 #include <thrift/concurrency/Monitor.h>
 #include <thrift/concurrency/Util.h>
 #include <thrift/concurrency/Mutex.h>
@@ -390,8 +390,8 @@
     cerr << usage.str();
   }
 
-  std::shared_ptr<PlatformThreadFactory> threadFactory
-      = std::shared_ptr<PlatformThreadFactory>(new PlatformThreadFactory());
+  std::shared_ptr<ThreadFactory> threadFactory
+      = std::shared_ptr<ThreadFactory>(new ThreadFactory());
 
   // Dispatcher
   std::shared_ptr<Server> serviceHandler(new Server());
diff --git a/test/cpp/src/StressTestNonBlocking.cpp b/test/cpp/src/StressTestNonBlocking.cpp
index 1d3ed73..5f0b293 100644
--- a/test/cpp/src/StressTestNonBlocking.cpp
+++ b/test/cpp/src/StressTestNonBlocking.cpp
@@ -18,7 +18,7 @@
  */
 
 #include <thrift/concurrency/ThreadManager.h>
-#include <thrift/concurrency/PlatformThreadFactory.h>
+#include <thrift/concurrency/ThreadFactory.h>
 #include <thrift/concurrency/Monitor.h>
 #include <thrift/concurrency/Util.h>
 #include <thrift/concurrency/Mutex.h>
@@ -343,8 +343,8 @@
     cerr << usage.str();
   }
 
-  std::shared_ptr<PlatformThreadFactory> threadFactory
-      = std::shared_ptr<PlatformThreadFactory>(new PlatformThreadFactory());
+  std::shared_ptr<ThreadFactory> threadFactory
+      = std::shared_ptr<ThreadFactory>(new ThreadFactory());
 
   // Dispatcher
   std::shared_ptr<Server> serviceHandler(new Server());
diff --git a/test/cpp/src/TestServer.cpp b/test/cpp/src/TestServer.cpp
index 6222017..4106628 100644
--- a/test/cpp/src/TestServer.cpp
+++ b/test/cpp/src/TestServer.cpp
@@ -20,7 +20,7 @@
 #include <thrift/async/TAsyncBufferProcessor.h>
 #include <thrift/async/TAsyncProtocolProcessor.h>
 #include <thrift/async/TEvhttpServer.h>
-#include <thrift/concurrency/PlatformThreadFactory.h>
+#include <thrift/concurrency/ThreadFactory.h>
 #include <thrift/concurrency/ThreadManager.h>
 #include <thrift/processor/TMultiplexedProcessor.h>
 #include <thrift/protocol/TBinaryProtocol.h>
@@ -770,8 +770,8 @@
     server.reset(new TSimpleServer(testProcessor, serverSocket, transportFactory, protocolFactory));
   } else if (server_type == "thread-pool") {
 
-    std::shared_ptr<PlatformThreadFactory> threadFactory
-        = std::shared_ptr<PlatformThreadFactory>(new PlatformThreadFactory());
+    std::shared_ptr<ThreadFactory> threadFactory
+        = std::shared_ptr<ThreadFactory>(new ThreadFactory());
 
     std::shared_ptr<ThreadManager> threadManager = ThreadManager::newSimpleThreadManager(workers);
     threadManager->threadFactory(threadFactory);
@@ -817,7 +817,7 @@
       server->setOutputProtocolFactory(std::shared_ptr<TProtocolFactory>());
     }
     
-    apache::thrift::concurrency::PlatformThreadFactory factory;
+    apache::thrift::concurrency::ThreadFactory factory;
     factory.setDetached(false);
     std::shared_ptr<apache::thrift::concurrency::Runnable> serverThreadRunner(server);
     std::shared_ptr<apache::thrift::concurrency::Thread> thread
diff --git a/test/threads/ThreadsClient.cpp b/test/threads/ThreadsClient.cpp
index 9306a3f..e8bd79e 100644
--- a/test/threads/ThreadsClient.cpp
+++ b/test/threads/ThreadsClient.cpp
@@ -27,7 +27,7 @@
 #include <thrift/transport/TTransportUtils.h>
 #include <thrift/concurrency/Monitor.h>
 #include <thrift/concurrency/ThreadManager.h>
-#include <thrift/concurrency/PlatformThreadFactory.h>
+#include <thrift/concurrency/ThreadFactory.h>
 #if _WIN32
    #include <thrift/windows/TWinsockSingleton.h>
 #endif
diff --git a/test/threads/ThreadsServer.cpp b/test/threads/ThreadsServer.cpp
index a267c3b..3811b60 100644
--- a/test/threads/ThreadsServer.cpp
+++ b/test/threads/ThreadsServer.cpp
@@ -28,7 +28,7 @@
 #include <thrift/transport/TTransportUtils.h>
 #include <thrift/concurrency/Monitor.h>
 #include <thrift/concurrency/ThreadManager.h>
-#include <thrift/concurrency/PlatformThreadFactory.h>
+#include <thrift/concurrency/ThreadFactory.h>
 #if _WIN32
    #include <thrift/windows/TWinsockSingleton.h>
 #endif
@@ -118,8 +118,8 @@
   /*
   shared_ptr<ThreadManager> threadManager =
     ThreadManager::newSimpleThreadManager(10);
-  shared_ptr<PlatformThreadFactory> threadFactory =
-    shared_ptr<PlatformThreadFactory>(new PlatformThreadFactory());
+  shared_ptr<ThreadFactory> threadFactory =
+    shared_ptr<ThreadFactory>(new ThreadFactory());
   threadManager->threadFactory(threadFactory);
   threadManager->start();
 
