diff --git a/lib/cpp/src/thrift/transport/TBufferTransports.cpp b/lib/cpp/src/thrift/transport/TBufferTransports.cpp
index d819868..69077f7 100644
--- a/lib/cpp/src/thrift/transport/TBufferTransports.cpp
+++ b/lib/cpp/src/thrift/transport/TBufferTransports.cpp
@@ -268,6 +268,17 @@
 
   // Flush the underlying transport.
   transport_->flush();
+
+  // reclaim write buffer
+  if (wBufSize_ > bufReclaimThresh_) {
+    wBufSize_ = DEFAULT_BUFFER_SIZE;
+    wBuf_.reset(new uint8_t[wBufSize_]);
+    setWriteBuffer(wBuf_.get(), wBufSize_);
+
+    // reset wBase_ with a pad for the frame size
+    int32_t pad = 0;
+    wBase_ = wBuf_.get() + sizeof(pad);
+  }
 }
 
 uint32_t TFramedTransport::writeEnd() {
@@ -285,7 +296,15 @@
 
 uint32_t TFramedTransport::readEnd() {
   // include framing bytes
-  return static_cast<uint32_t>(rBound_ - rBuf_.get() + sizeof(uint32_t));
+  uint32_t bytes_read = static_cast<uint32_t>(rBound_ - rBuf_.get() + sizeof(uint32_t));
+
+  if (rBufSize_ > bufReclaimThresh_) {
+      rBufSize_ = 0;
+      rBuf_.reset();
+      setReadBuffer(rBuf_.get(), rBufSize_);
+  }
+ 
+  return bytes_read;   
 }
 
 void TMemoryBuffer::computeRead(uint32_t len, uint8_t** out_start, uint32_t* out_give) {
diff --git a/lib/cpp/src/thrift/transport/TBufferTransports.h b/lib/cpp/src/thrift/transport/TBufferTransports.h
index cd6ecea..71bdd84 100644
--- a/lib/cpp/src/thrift/transport/TBufferTransports.h
+++ b/lib/cpp/src/thrift/transport/TBufferTransports.h
@@ -335,16 +335,19 @@
     , wBufSize_(DEFAULT_BUFFER_SIZE)
     , rBuf_()
     , wBuf_(new uint8_t[wBufSize_])
+    , bufReclaimThresh_(std::numeric_limits<uint32_t>::max())
   {
     initPointers();
   }
 
-  TFramedTransport(boost::shared_ptr<TTransport> transport, uint32_t sz)
+  TFramedTransport(boost::shared_ptr<TTransport> transport, uint32_t sz, 
+          uint32_t bufReclaimThresh = std::numeric_limits<uint32_t>::max())
     : transport_(transport)
     , rBufSize_(0)
     , wBufSize_(sz)
     , rBuf_()
     , wBuf_(new uint8_t[wBufSize_])
+    , bufReclaimThresh_(bufReclaimThresh)
   {
     initPointers();
   }
@@ -414,6 +417,7 @@
   uint32_t wBufSize_;
   boost::scoped_array<uint8_t> rBuf_;
   boost::scoped_array<uint8_t> wBuf_;
+  uint32_t bufReclaimThresh_;
 };
 
 /**
