diff --git a/lib/cpp/Makefile.am b/lib/cpp/Makefile.am
index 548da76..b856068 100644
--- a/lib/cpp/Makefile.am
+++ b/lib/cpp/Makefile.am
@@ -29,7 +29,7 @@
 			 src/Thrift.h \
 			 src/TProcessor.h
 
-include_concurrencydir = $(includedir)/thrift/concurrency
+include_concurrencydir = $(include_thriftdir)/concurrency
 include_concurrency_HEADERS = \
 			 src/concurrency/Exception.h \
                          src/concurrency/Monitor.h \
@@ -38,12 +38,12 @@
                          src/concurrency/ThreadManager.h \
                          src/concurrency/TimerManager.h
 
-include_protocoldir = $(includedir)/thrift/protocol
+include_protocoldir = $(include_thriftdir)/protocol
 include_protocol_HEADERS = \
                          src/protocol/TBinaryProtocol.h \
                          src/protocol/TProtocol.h
 
-include_transportdir = $(includedir)/thrift/transport
+include_transportdir = $(include_thriftdir)/transport
 include_transport_HEADERS = \
                          src/transport/TBufferedTransport.h \
                          src/transport/TChunkedTransport.h \
@@ -54,7 +54,7 @@
                          src/transport/TTransport.h \
                          src/transport/TTransportException.h
 
-include_serverdir = $(includedir)/thrift/server
+include_serverdir = $(include_thriftdir)/server
 include_server_HEADERS = \
                          src/server/TServer.h \
                          src/server/TSimpleServer.h \
diff --git a/lib/cpp/configure.ac b/lib/cpp/configure.ac
index ee9995e..b854ebd 100644
--- a/lib/cpp/configure.ac
+++ b/lib/cpp/configure.ac
@@ -14,6 +14,10 @@
 
 AC_CHECK_FUNCS([socket])
 
+AC_CHECK_FUNCS([strtol])
+
+AC_CHECK_FUNCS([strtoul])
+
 AC_CHECK_HEADERS([arpa/inet.h])
 
 AC_CHECK_HEADERS([inttypes.h])
@@ -52,6 +56,8 @@
 
 AC_TYPE_SIZE_T
 
+AC_TYPE_INT16_T
+
 AC_TYPE_INT32_T
 
 AC_TYPE_INT64_T
diff --git a/lib/cpp/src/concurrency/Util.h b/lib/cpp/src/concurrency/Util.h
index fc24f74..3342653 100644
--- a/lib/cpp/src/concurrency/Util.h
+++ b/lib/cpp/src/concurrency/Util.h
@@ -5,7 +5,7 @@
 
 #include <assert.h>
 #include <stddef.h>
-#include <time.h>
+#include <sys/time.h>
 
 namespace facebook { namespace thrift { namespace concurrency { 
 
diff --git a/lib/cpp/src/concurrency/test/ThreadFactoryTests.h b/lib/cpp/src/concurrency/test/ThreadFactoryTests.h
index c019159..26e4c28 100644
--- a/lib/cpp/src/concurrency/test/ThreadFactoryTests.h
+++ b/lib/cpp/src/concurrency/test/ThreadFactoryTests.h
@@ -26,7 +26,6 @@
 
   public:
 
-
     Task() {}
 
     void run() {
diff --git a/lib/cpp/src/protocol/TBinaryProtocol.cc b/lib/cpp/src/protocol/TBinaryProtocol.cc
index fef8ab4..624965b 100644
--- a/lib/cpp/src/protocol/TBinaryProtocol.cc
+++ b/lib/cpp/src/protocol/TBinaryProtocol.cc
@@ -1,4 +1,5 @@
-#include "protocol/TBinaryProtocol.h"
+#include "TBinaryProtocol.h"
+
 using std::string;
 
 namespace facebook { namespace thrift { namespace protocol { 
diff --git a/lib/cpp/src/protocol/TBinaryProtocol.h b/lib/cpp/src/protocol/TBinaryProtocol.h
index 3456abf..db7960f 100644
--- a/lib/cpp/src/protocol/TBinaryProtocol.h
+++ b/lib/cpp/src/protocol/TBinaryProtocol.h
@@ -1,7 +1,7 @@
 #ifndef T_BINARY_PROTOCOL_H
 #define T_BINARY_PROTOCOL_H
 
-#include <protocol/TProtocol.h>
+#include "TProtocol.h"
 
 #include <boost/shared_ptr.hpp>
 
diff --git a/lib/cpp/src/protocol/TProtocol.h b/lib/cpp/src/protocol/TProtocol.h
index 33a6eb7..aa67e9c 100644
--- a/lib/cpp/src/protocol/TProtocol.h
+++ b/lib/cpp/src/protocol/TProtocol.h
@@ -29,8 +29,10 @@
  * the end of a sequence of fields.
  */
 enum TType {
-  T_STOP       = 1,
+  T_STOP       = 0,
+  T_BOOL       = 1,
   T_BYTE       = 2,
+  T_U08       = 2,
   T_U16        = 3,
   T_I16        = 4,
   T_U32        = 5,
@@ -38,10 +40,13 @@
   T_U64        = 7,
   T_I64        = 8,
   T_STRING     = 9,
+  T_UTF7       = 9,
   T_STRUCT     = 10,
   T_MAP        = 11,
   T_SET        = 12,
-  T_LIST       = 13
+  T_LIST       = 13,
+  T_UTF8       = 14,
+  T_UTF16      = 15
 };
 
 /**
diff --git a/lib/cpp/src/transport/TBufferedTransport.h b/lib/cpp/src/transport/TBufferedTransport.h
index 922754e..c94d926 100644
--- a/lib/cpp/src/transport/TBufferedTransport.h
+++ b/lib/cpp/src/transport/TBufferedTransport.h
@@ -1,7 +1,7 @@
 #ifndef T_BUFFERED_TRANSPORT_H
 #define T_BUFFERED_TRANSPORT_H
 
-#include <transport/TTransport.h>
+#include "TTransport.h"
 #include <string>
 
 #include <boost/shared_ptr.hpp>
diff --git a/lib/cpp/src/transport/TChunkedTransport.h b/lib/cpp/src/transport/TChunkedTransport.h
index 0fe8d75..c6312d0 100644
--- a/lib/cpp/src/transport/TChunkedTransport.h
+++ b/lib/cpp/src/transport/TChunkedTransport.h
@@ -1,7 +1,7 @@
 #ifndef T_CHUNKED_TRANSPORT_H
 #define T_CHUNKED_TRANSPORT_H
 
-#include <transport/TTransport.h>
+#include "TTransport.h"
 #include <string>
 #include <boost/shared_ptr.hpp>
 
diff --git a/lib/cpp/src/transport/TNullTransport.h b/lib/cpp/src/transport/TNullTransport.h
index 2522148..8bb5bd2 100644
--- a/lib/cpp/src/transport/TNullTransport.h
+++ b/lib/cpp/src/transport/TNullTransport.h
@@ -1,7 +1,7 @@
 #ifndef T_NULL_TRANSPORT
 #define T_NULL_TRANSPORT
 
-#include "transport/TTransport.h"
+#include "TTransport.h"
 
 namespace facebook { namespace thrift { namespace transport { 
 
diff --git a/lib/cpp/src/transport/TServerSocket.cc b/lib/cpp/src/transport/TServerSocket.cc
index 003ddec..75bd504 100644
--- a/lib/cpp/src/transport/TServerSocket.cc
+++ b/lib/cpp/src/transport/TServerSocket.cc
@@ -2,8 +2,8 @@
 #include <netinet/in.h>
 #include <errno.h>
 
-#include "transport/TSocket.h"
-#include "transport/TServerSocket.h"
+#include "TSocket.h"
+#include "TServerSocket.h"
 #include <boost/shared_ptr.hpp>
 
 namespace facebook { namespace thrift { namespace transport { 
diff --git a/lib/cpp/src/transport/TServerSocket.h b/lib/cpp/src/transport/TServerSocket.h
index 619a366..a7af44b 100644
--- a/lib/cpp/src/transport/TServerSocket.h
+++ b/lib/cpp/src/transport/TServerSocket.h
@@ -1,7 +1,7 @@
 #ifndef T_SERVER_SOCKET_H
 #define T_SERVER_SOCKET_H
 
-#include <transport/TServerTransport.h>
+#include "TServerTransport.h"
 #include <boost/shared_ptr.hpp>
 
 namespace facebook { namespace thrift { namespace transport { 
diff --git a/lib/cpp/src/transport/TServerTransport.h b/lib/cpp/src/transport/TServerTransport.h
index f51e88c..390fa70 100644
--- a/lib/cpp/src/transport/TServerTransport.h
+++ b/lib/cpp/src/transport/TServerTransport.h
@@ -1,8 +1,8 @@
 #ifndef T_SERVER_TRANSPORT_H
 #define T_SERVER_TRANSPORT_H
 
-#include "transport/TTransport.h"
-#include "transport/TTransportException.h"
+#include "TTransport.h"
+#include "TTransportException.h"
 #include <boost/shared_ptr.hpp>
 
 namespace facebook { namespace thrift { namespace transport { 
diff --git a/lib/cpp/src/transport/TSocket.cc b/lib/cpp/src/transport/TSocket.cc
index a1e0327..eef76ef 100644
--- a/lib/cpp/src/transport/TSocket.cc
+++ b/lib/cpp/src/transport/TSocket.cc
@@ -7,8 +7,8 @@
 #include <unistd.h>
 #include <errno.h>
 
-#include "transport/TSocket.h"
-#include "transport/TTransportException.h"
+#include "TSocket.h"
+#include "TTransportException.h"
 
 namespace facebook { namespace thrift { namespace transport { 
 
diff --git a/lib/cpp/src/transport/TSocket.h b/lib/cpp/src/transport/TSocket.h
index 8a6fc8f..bf90b63 100644
--- a/lib/cpp/src/transport/TSocket.h
+++ b/lib/cpp/src/transport/TSocket.h
@@ -3,8 +3,8 @@
 
 #include <string>
 
-#include "transport/TTransport.h"
-#include "transport/TServerSocket.h"
+#include "TTransport.h"
+#include "TServerSocket.h"
 
 namespace facebook { namespace thrift { namespace transport { 
 
diff --git a/lib/cpp/src/transport/TTransport.h b/lib/cpp/src/transport/TTransport.h
index e9366d3..e5e40e4 100644
--- a/lib/cpp/src/transport/TTransport.h
+++ b/lib/cpp/src/transport/TTransport.h
@@ -1,8 +1,8 @@
 #ifndef T_TRANSPORT_H
 #define T_TRANSPORT_H
 
+#include "TTransportException.h"
 #include <string>
-#include "transport/TTransportException.h"
 
 namespace facebook { namespace thrift { namespace transport { 
 
