diff --git a/lib/cpp/src/protocol/TBinaryProtocol.cpp b/lib/cpp/src/protocol/TBinaryProtocol.cpp
index 6945851..30bbde6 100644
--- a/lib/cpp/src/protocol/TBinaryProtocol.cpp
+++ b/lib/cpp/src/protocol/TBinaryProtocol.cpp
@@ -193,8 +193,8 @@
  */
 
 uint32_t TBinaryProtocol::readMessageBegin(std::string& name,
-					   TMessageType& messageType,
-					   int32_t& seqid) {
+                                           TMessageType& messageType,
+                                           int32_t& seqid) {
   uint32_t result = 0;
   int32_t sz;
   result += readI32(sz);
diff --git a/lib/cpp/src/protocol/TBinaryProtocol.h b/lib/cpp/src/protocol/TBinaryProtocol.h
index 5047e02..01f7c3b 100644
--- a/lib/cpp/src/protocol/TBinaryProtocol.h
+++ b/lib/cpp/src/protocol/TBinaryProtocol.h
@@ -127,8 +127,8 @@
 
 
   uint32_t readMessageBegin(std::string& name,
-			    TMessageType& messageType,
-			    int32_t& seqid);
+                            TMessageType& messageType,
+                            int32_t& seqid);
 
   uint32_t readMessageEnd();
 
@@ -137,14 +137,14 @@
   uint32_t readStructEnd();
 
   uint32_t readFieldBegin(std::string& name,
-			  TType& fieldType,
-			  int16_t& fieldId);
+                          TType& fieldType,
+                          int16_t& fieldId);
   
   uint32_t readFieldEnd();
  
   uint32_t readMapBegin(TType& keyType,
-			TType& valType,
-			uint32_t& size);
+                        TType& valType,
+                        uint32_t& size);
 
   uint32_t readMapEnd();
 
@@ -154,7 +154,7 @@
   uint32_t readListEnd();
 
   uint32_t readSetBegin(TType& elemType,
-			uint32_t& size);
+                        uint32_t& size);
 
   uint32_t readSetEnd();
 
diff --git a/lib/cpp/src/protocol/TOneWayProtocol.h b/lib/cpp/src/protocol/TOneWayProtocol.h
index c928058..635744c 100644
--- a/lib/cpp/src/protocol/TOneWayProtocol.h
+++ b/lib/cpp/src/protocol/TOneWayProtocol.h
@@ -35,8 +35,8 @@
    */
 
   uint32_t readMessageBegin(std::string& name,
-			    TMessageType& messageType,
-			    int32_t& seqid) {
+                            TMessageType& messageType,
+                            int32_t& seqid) {
     throw TProtocolException(TProtocolException::NOT_IMPLEMENTED,
         subclass_ + " does not support reading (yet).");
   }
@@ -57,8 +57,8 @@
   }
 
   uint32_t readFieldBegin(std::string& name,
-			  TType& fieldType,
-			  int16_t& fieldId) {
+                          TType& fieldType,
+                          int16_t& fieldId) {
     throw TProtocolException(TProtocolException::NOT_IMPLEMENTED,
         subclass_ + " does not support reading (yet).");
   }
@@ -69,8 +69,8 @@
   }
  
   uint32_t readMapBegin(TType& keyType,
-			TType& valType,
-			uint32_t& size) {
+                        TType& valType,
+                        uint32_t& size) {
     throw TProtocolException(TProtocolException::NOT_IMPLEMENTED,
         subclass_ + " does not support reading (yet).");
   }
@@ -92,7 +92,7 @@
   }
 
   uint32_t readSetBegin(TType& elemType,
-			uint32_t& size) {
+                        uint32_t& size) {
     throw TProtocolException(TProtocolException::NOT_IMPLEMENTED,
         subclass_ + " does not support reading (yet).");
   }
diff --git a/lib/cpp/src/protocol/TProtocol.h b/lib/cpp/src/protocol/TProtocol.h
index a7560ca..7fa3de8 100644
--- a/lib/cpp/src/protocol/TProtocol.h
+++ b/lib/cpp/src/protocol/TProtocol.h
@@ -122,26 +122,26 @@
   virtual uint32_t writeStructEnd() = 0;
   
   virtual uint32_t writeFieldBegin(const std::string& name,
-				   const TType fieldType,
-				   const int16_t fieldId) = 0;
+                                   const TType fieldType,
+                                   const int16_t fieldId) = 0;
 
   virtual uint32_t writeFieldEnd() = 0;
 
   virtual uint32_t writeFieldStop() = 0;
                                       
   virtual uint32_t writeMapBegin(const TType keyType,
-				 const TType valType,
-				 const uint32_t size) = 0;
+                                 const TType valType,
+                                 const uint32_t size) = 0;
 
   virtual uint32_t writeMapEnd() = 0;
   
   virtual uint32_t writeListBegin(const TType elemType,
-				  const uint32_t size) = 0;
+                                  const uint32_t size) = 0;
 
   virtual uint32_t writeListEnd() = 0;
 
   virtual uint32_t writeSetBegin(const TType elemType,
-				 const uint32_t size) = 0;
+                                 const uint32_t size) = 0;
 
   virtual uint32_t writeSetEnd() = 0;
 
@@ -164,8 +164,8 @@
    */
 
   virtual uint32_t readMessageBegin(std::string& name,
-				    TMessageType& messageType,
-				    int32_t& seqid) = 0;
+                                    TMessageType& messageType,
+                                    int32_t& seqid) = 0;
   
   virtual uint32_t readMessageEnd() = 0;
 
@@ -174,24 +174,24 @@
   virtual uint32_t readStructEnd() = 0;
 
   virtual uint32_t readFieldBegin(std::string& name,
-				  TType& fieldType,
-				  int16_t& fieldId) = 0;
+                                  TType& fieldType,
+                                  int16_t& fieldId) = 0;
   
   virtual uint32_t readFieldEnd() = 0;
  
   virtual uint32_t readMapBegin(TType& keyType,
-				TType& valType,
-				uint32_t& size) = 0;
+                                TType& valType,
+                                uint32_t& size) = 0;
 
   virtual uint32_t readMapEnd() = 0;
 
   virtual uint32_t readListBegin(TType& elemType,
-				 uint32_t& size) = 0;
+                                 uint32_t& size) = 0;
 
   virtual uint32_t readListEnd() = 0;
 
   virtual uint32_t readSetBegin(TType& elemType,
-				uint32_t& size) = 0;
+                                uint32_t& size) = 0;
 
   virtual uint32_t readSetEnd() = 0;
 
