diff --git a/.gitignore b/.gitignore
index ac6253a..4219468 100644
--- a/.gitignore
+++ b/.gitignore
@@ -127,6 +127,7 @@
 /lib/c_glib/test/testapplicationexception
 /lib/c_glib/test/testbinaryprotocol
 /lib/c_glib/test/testbufferedtransport
+/lib/c_glib/test/testcontainertest
 /lib/c_glib/test/testdebugproto
 /lib/c_glib/test/testframedtransport
 /lib/c_glib/test/testmemorybuffer
diff --git a/lib/cpp/src/thrift/transport/TPipe.cpp b/lib/cpp/src/thrift/transport/TPipe.cpp
index cd114c2..b1e1b72 100644
--- a/lib/cpp/src/thrift/transport/TPipe.cpp
+++ b/lib/cpp/src/thrift/transport/TPipe.cpp
@@ -385,11 +385,11 @@
   return INVALID_HANDLE_VALUE;
 }
 
-long TPipe::getConnectTimeout() {
+long TPipe::getConnTimeout() {
   return TimeoutSeconds_;
 }
 
-void TPipe::setConnectTimeout(long seconds) {
+void TPipe::setConnTimeout(long seconds) {
   TimeoutSeconds_ = seconds;
 }
 
diff --git a/lib/cpp/src/thrift/transport/TPipe.h b/lib/cpp/src/thrift/transport/TPipe.h
index 83ed9c7..fdb17ee 100644
--- a/lib/cpp/src/thrift/transport/TPipe.h
+++ b/lib/cpp/src/thrift/transport/TPipe.h
@@ -87,8 +87,8 @@
   void setPipeHandle(HANDLE pipehandle);
   HANDLE getWrtPipeHandle();
   void setWrtPipeHandle(HANDLE pipehandle);
-  long getConnectTimeout();
-  void setConnectTimeout(long seconds);
+  long getConnTimeout();
+  void setConnTimeout(long seconds);
 
   // this function is intended to be used in generic / template situations,
   // so its name needs to be the same as TPipeServer's
diff --git a/lib/cpp/test/Makefile.am b/lib/cpp/test/Makefile.am
index 435f2b5..b19f791 100755
--- a/lib/cpp/test/Makefile.am
+++ b/lib/cpp/test/Makefile.am
@@ -209,8 +209,11 @@
 	TPipeInterruptTest.cpp
 
 TPipedTransportTest_LDADD = \
+	libtestgencpp.la \
 	$(top_builddir)/lib/cpp/libthrift.la \
-	$(BOOST_TEST_LDADD)
+	$(BOOST_TEST_LDADD) \
+	$(BOOST_SYSTEM_LDADD) \
+	$(BOOST_THREAD_LDADD)
 
 #
 # AllProtocolsTest
diff --git a/lib/cpp/test/TPipeInterruptTest.cpp b/lib/cpp/test/TPipeInterruptTest.cpp
index b0e246d..e2f2489 100644
--- a/lib/cpp/test/TPipeInterruptTest.cpp
+++ b/lib/cpp/test/TPipeInterruptTest.cpp
@@ -17,6 +17,8 @@
  * under the License.
  */
 
+#ifdef _WIN32
+
 #include <boost/test/test_tools.hpp>
 #include <boost/test/unit_test_suite.hpp>
 
@@ -74,7 +76,7 @@
       for (;;)
       {
         TPipe client("TPipeInterruptTest");
-        client.setConnectTimeout(1);
+        client.setConnTimeout(1);
         client.open();
       }
     } catch (...) { /*just testing for crashes*/ }
@@ -84,3 +86,4 @@
 }
 
 BOOST_AUTO_TEST_SUITE_END()
+#endif
diff --git a/lib/cpp/test/TPipedTransportTest.cpp b/lib/cpp/test/TPipedTransportTest.cpp
index a2ec81e..3221fb9 100644
--- a/lib/cpp/test/TPipedTransportTest.cpp
+++ b/lib/cpp/test/TPipedTransportTest.cpp
@@ -28,7 +28,7 @@
 using apache::thrift::transport::TPipedTransport;
 using apache::thrift::transport::TMemoryBuffer;
 
-BOOST_AUTO_TEST_CASE(test_tpipedtransport_1) {
+BOOST_AUTO_TEST_CASE(test_read_write) {
   boost::shared_ptr<TMemoryBuffer> underlying(new TMemoryBuffer);
   boost::shared_ptr<TMemoryBuffer> pipe(new TMemoryBuffer);
   boost::shared_ptr<TPipedTransport> trans(new TPipedTransport(underlying, pipe));
