diff --git a/lib/cpp/src/server/TNonblockingServer.cpp b/lib/cpp/src/server/TNonblockingServer.cpp
index 8c039b9..8f68d74 100644
--- a/lib/cpp/src/server/TNonblockingServer.cpp
+++ b/lib/cpp/src/server/TNonblockingServer.cpp
@@ -19,6 +19,7 @@
 
 #include "TNonblockingServer.h"
 #include <concurrency/Exception.h>
+#include <transport/TSocket.h>
 
 #include <iostream>
 #include <sys/socket.h>
@@ -39,6 +40,8 @@
 using namespace apache::thrift::transport;
 using namespace apache::thrift::concurrency;
 using namespace std;
+using apache::thrift::transport::TSocket;
+using apache::thrift::transport::TTransportException;
 
 class TConnection::Task: public Runnable {
  public:
@@ -706,6 +709,12 @@
   setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &one, sizeof(one));
   #endif
 
+  #ifdef TCP_LOW_MIN_RTO
+  if (TSocket::getUseLowMinRto()) {
+    setsockopt(s, IPPROTO_TCP, TCP_LOW_MIN_RTO, &one, sizeof(one));
+  }
+  #endif
+
   if (listen(s, LISTEN_BACKLOG) == -1) {
     close(s);
     throw TException("TNonblockingServer::serve() listen");
@@ -761,7 +770,7 @@
               EV_READ | EV_PERSIST,
               TConnection::taskHandler,
               this);
-    
+
     // Attach to the base
     event_base_set(eventBase_, &notificationEvent_);
 
diff --git a/lib/cpp/src/transport/TSocket.cpp b/lib/cpp/src/transport/TSocket.cpp
index d27c868..ce1ddcb 100644
--- a/lib/cpp/src/transport/TSocket.cpp
+++ b/lib/cpp/src/transport/TSocket.cpp
@@ -153,6 +153,15 @@
   // No delay
   setNoDelay(noDelay_);
 
+  // Uses a low min RTO if asked to.
+#ifdef TCP_LOW_MIN_RTO
+  if (getUseLowMinRto()) {
+    int one = 1;
+    setsockopt(socket_, IPPROTO_TCP, TCP_LOW_MIN_RTO, &one, sizeof(one));
+  }
+#endif
+
+
   // Set the socket to be non blocking for connect if a timeout exists
   int flags = fcntl(socket_, F_GETFL, 0);
   if (connTimeout_ > 0) {
@@ -589,4 +598,12 @@
   return peerPort_;
 }
 
+bool TSocket::useLowMinRto_ = false;
+void TSocket::setUseLowMinRto(bool useLowMinRto) {
+  useLowMinRto_ = useLowMinRto;
+}
+bool TSocket::getUseLowMinRto() {
+  return useLowMinRto_;
+}
+
 }}} // apache::thrift::transport
diff --git a/lib/cpp/src/transport/TSocket.h b/lib/cpp/src/transport/TSocket.h
index b0f445a..b9d1c01 100644
--- a/lib/cpp/src/transport/TSocket.h
+++ b/lib/cpp/src/transport/TSocket.h
@@ -22,6 +22,7 @@
 
 #include <string>
 #include <sys/time.h>
+#include <netdb.h>
 
 #include "TTransport.h"
 #include "TServerSocket.h"
@@ -182,6 +183,15 @@
    **/
   int getPeerPort();
 
+  /**
+   * Sets whether to use a low minimum TCP retransmission timeout.
+   */
+  static void setUseLowMinRto(bool useLowMinRto);
+
+  /**
+   * Gets whether to use a low minimum TCP retransmission timeout.
+   */
+  static bool getUseLowMinRto();
 
  protected:
   /**
@@ -234,6 +244,9 @@
 
   /** Recv timeout timeval */
   struct timeval recvTimeval_;
+
+  /** Whether to use low minimum TCP retransmission timeout */
+  static bool useLowMinRto_;
 };
 
 }}} // apache::thrift::transport
