Index: trunk/FACT++/src/Connection.cc
===================================================================
--- trunk/FACT++/src/Connection.cc	(revision 20004)
+++ trunk/FACT++/src/Connection.cc	(revision 20005)
@@ -266,8 +266,16 @@
 
 	const int optval = 30;
+
+#if BOOST_VERSION <107000
         // First keep alive after 30s
 	setsockopt(native(), SOL_TCP, TCP_KEEPIDLE, &optval, sizeof(optval));
         // New keep alive after 30s
 	setsockopt(native(), SOL_TCP, TCP_KEEPINTVL, &optval, sizeof(optval));
+#else
+        // First keep alive after 30s
+	setsockopt(native_handle(), SOL_TCP, TCP_KEEPIDLE, &optval, sizeof(optval));
+        // New keep alive after 30s
+	setsockopt(native_handle(), SOL_TCP, TCP_KEEPINTVL, &optval, sizeof(optval));
+#endif
 
         if (fVerbose)
Index: trunk/FACT++/src/ConnectionSSL.cc
===================================================================
--- trunk/FACT++/src/ConnectionSSL.cc	(revision 20004)
+++ trunk/FACT++/src/ConnectionSSL.cc	(revision 20005)
@@ -267,9 +267,17 @@
         lowest_layer().set_option(boost::asio::socket_base::keep_alive(true));
 
-	const int optval = 30;
+        const int optval = 30;
+
+#if BOOST_VERSION <107000
         // First keep alive after 30s
 	setsockopt(lowest_layer().native(), SOL_TCP, TCP_KEEPIDLE, &optval, sizeof(optval));
         // New keep alive after 30s
 	setsockopt(lowest_layer().native(), SOL_TCP, TCP_KEEPINTVL, &optval, sizeof(optval));
+#else
+        // First keep alive after 30s
+	setsockopt(lowest_layer().native_handle(), SOL_TCP, TCP_KEEPIDLE, &optval, sizeof(optval));
+        // New keep alive after 30s
+	setsockopt(lowest_layer().native_handle(), SOL_TCP, TCP_KEEPINTVL, &optval, sizeof(optval));
+#endif
 
         if (fVerbose)
@@ -521,6 +529,6 @@
 
 ConnectionSSL::ConnectionSSL(ba::io_service& ioservice, ostream &out) : MessageImp(out),
-ssl::context(ioservice, boost::asio::ssl::context::method::sslv23_client), stream(ioservice, *this),
-fLog(0), fVerbose(true), fDebugTx(false),
+ssl::context(ioservice, boost::asio::ssl::context::method::sslv23_client),
+stream(ioservice, *this), fLog(0), fVerbose(true), fDebugTx(false),
 fInTimeout(ioservice), fOutTimeout(ioservice), fConnectionTimer(ioservice),
 fQueueSize(0), fConnectionStatus(kDisconnected)
