diff --git a/lib/cpp/src/protocol/TBinaryProtocol.h b/lib/cpp/src/protocol/TBinaryProtocol.h
index b9bf0e9..6a85491 100644
--- a/lib/cpp/src/protocol/TBinaryProtocol.h
+++ b/lib/cpp/src/protocol/TBinaryProtocol.h
@@ -13,8 +13,6 @@
 
 namespace facebook { namespace thrift { namespace protocol { 
 
-using namespace boost;
-
 /**
  * The default binary protocol for thrift. Writes all data in a very basic
  * binary format, essentially just spitting out the raw bytes.
@@ -23,14 +21,14 @@
  */
 class TBinaryProtocol : public TProtocol {
  public:
-  TBinaryProtocol(shared_ptr<TTransport> trans) :
+  TBinaryProtocol(boost::shared_ptr<TTransport> trans) :
     TProtocol(trans),
     string_limit_(0),
     container_limit_(0),
     string_buf_(NULL),
     string_buf_size_(0) {}
 
-  TBinaryProtocol(shared_ptr<TTransport> trans,
+  TBinaryProtocol(boost::shared_ptr<TTransport> trans,
                   int32_t string_limit,
                   int32_t container_limit) :
     TProtocol(trans),
diff --git a/lib/cpp/src/protocol/TProtocol.h b/lib/cpp/src/protocol/TProtocol.h
index 8b2e6bd..735268e 100644
--- a/lib/cpp/src/protocol/TProtocol.h
+++ b/lib/cpp/src/protocol/TProtocol.h
@@ -19,9 +19,7 @@
 
 namespace facebook { namespace thrift { namespace protocol { 
 
-using namespace boost;
-
-using namespace facebook::thrift::transport;
+using facebook::thrift::transport::TTransport;
 
 #if __BYTE_ORDER == __BIG_ENDIAN
 #define ntohll(n) (n)
@@ -290,26 +288,26 @@
     }
   }
 
-  inline shared_ptr<TTransport> getTransport() {
+  inline boost::shared_ptr<TTransport> getTransport() {
     return ptrans_;
   }
 
   // TODO: remove these two calls, they are for backwards
   // compatibility
-  inline shared_ptr<TTransport> getInputTransport() {
+  inline boost::shared_ptr<TTransport> getInputTransport() {
     return ptrans_;
   }
-  inline shared_ptr<TTransport> getOutputTransport() {
+  inline boost::shared_ptr<TTransport> getOutputTransport() {
     return ptrans_;
   }
 
  protected:
-  TProtocol(shared_ptr<TTransport> ptrans):
+  TProtocol(boost::shared_ptr<TTransport> ptrans):
     ptrans_(ptrans) {
     trans_ = ptrans.get();
   }
     
-  shared_ptr<TTransport> ptrans_;
+  boost::shared_ptr<TTransport> ptrans_;
   TTransport* trans_;
 
  private:
