diff --git a/contrib/fb303/cpp/FacebookBase.cpp b/contrib/fb303/cpp/FacebookBase.cpp
index d942106..41a37a2 100644
--- a/contrib/fb303/cpp/FacebookBase.cpp
+++ b/contrib/fb303/cpp/FacebookBase.cpp
@@ -7,7 +7,7 @@
 #include "FacebookBase.h"
 
 using namespace facebook::fb303;
-using facebook::thrift::concurrency::Guard;
+using apache::thrift::concurrency::Guard;
 
 FacebookBase::FacebookBase(std::string name) :
   name_(name) {
diff --git a/contrib/fb303/cpp/FacebookBase.h b/contrib/fb303/cpp/FacebookBase.h
index 6281cdf..0efe655 100644
--- a/contrib/fb303/cpp/FacebookBase.h
+++ b/contrib/fb303/cpp/FacebookBase.h
@@ -18,9 +18,9 @@
 
 namespace facebook { namespace fb303 {
 
-using facebook::thrift::concurrency::Mutex;
-using facebook::thrift::concurrency::ReadWriteMutex;
-using facebook::thrift::server::TServer;
+using apache::thrift::concurrency::Mutex;
+using apache::thrift::concurrency::ReadWriteMutex;
+using apache::thrift::server::TServer;
 
 struct ReadWriteInt : ReadWriteMutex {int64_t value;};
 struct ReadWriteCounterMap : ReadWriteMutex,
diff --git a/contrib/fb303/cpp/ServiceTracker.cpp b/contrib/fb303/cpp/ServiceTracker.cpp
index d510cf7..bb3f219 100644
--- a/contrib/fb303/cpp/ServiceTracker.cpp
+++ b/contrib/fb303/cpp/ServiceTracker.cpp
@@ -12,7 +12,7 @@
 
 using namespace std;
 using namespace facebook::fb303;
-using namespace facebook::thrift::concurrency;
+using namespace apache::thrift::concurrency;
 
 
 uint64_t ServiceTracker::CHECKPOINT_MINIMUM_INTERVAL_SECONDS = 60;
diff --git a/contrib/fb303/cpp/ServiceTracker.h b/contrib/fb303/cpp/ServiceTracker.h
index fb7e62e..1fa0c63 100644
--- a/contrib/fb303/cpp/ServiceTracker.h
+++ b/contrib/fb303/cpp/ServiceTracker.h
@@ -90,7 +90,7 @@
 #include "concurrency/Mutex.h"
 
 
-namespace facebook { namespace thrift { namespace concurrency {
+namespace apache { namespace thrift { namespace concurrency {
   class ThreadManager;
 }}}
 
@@ -132,20 +132,20 @@
                  Stopwatch::Unit stopwatchUnit
                  = Stopwatch::UNIT_MILLISECONDS);
 
-  void setThreadManager(boost::shared_ptr<facebook::thrift::concurrency::ThreadManager> threadManager);
+  void setThreadManager(boost::shared_ptr<apache::thrift::concurrency::ThreadManager> threadManager);
 
 private:
 
   facebook::fb303::FacebookBase *handler_;
   void (*logMethod_)(int, const std::string &);
-  boost::shared_ptr<facebook::thrift::concurrency::ThreadManager> threadManager_;
+  boost::shared_ptr<apache::thrift::concurrency::ThreadManager> threadManager_;
 
   bool featureCheckpoint_;
   bool featureStatusCheck_;
   bool featureThreadCheck_;
   Stopwatch::Unit stopwatchUnit_;
 
-  facebook::thrift::concurrency::Mutex statisticsMutex_;
+  apache::thrift::concurrency::Mutex statisticsMutex_;
   time_t checkpointTime_;
   uint64_t checkpointServices_;
   uint64_t checkpointDuration_;
