diff --git a/src/transport/stream-transport.hpp b/src/transport/stream-transport.hpp
index ca1ce9a..c9d61b7 100644
--- a/src/transport/stream-transport.hpp
+++ b/src/transport/stream-transport.hpp
@@ -59,7 +59,7 @@
             buffer.push_back(boost::asio::buffer(i->first.wire(),  i->first.size()));
             buffer.push_back(boost::asio::buffer(i->second.wire(), i->second.size()));
             m_socket.async_send(buffer,
-                                bind(&impl::handle_async_send, this, _1, i->first, i->second));
+                                bind(&impl::handle_async_send2, this, _1, i->first, i->second));
           }
 
         m_sendQueue.clear();
@@ -172,7 +172,7 @@
         buffers.push_back(boost::asio::buffer(payload.wire(), payload.size()));
 
         m_socket.async_send(buffers,
-                            bind(&impl::handle_async_send, this, _1, header, payload));
+                            bind(&impl::handle_async_send2, this, _1, header, payload));
       }
   }
 
@@ -253,8 +253,8 @@
   }
 
   void
-  handle_async_send(const boost::system::error_code& error,
-                    const Block& header, const Block& payload)
+  handle_async_send2(const boost::system::error_code& error,
+                     const Block& header, const Block& payload)
   {
     // pass (needed to keep data blocks alive during the send)
   }
@@ -327,7 +327,7 @@
 
       // typename boost::asio::ip::basic_resolver< protocol > resolver;
       shared_ptr<typename protocol::resolver> resolver =
-        make_shared<typename protocol::resolver>(boost::ref(this->m_socket.get_io_service()));
+        make_shared<typename protocol::resolver>(ref(this->m_socket.get_io_service()));
 
       resolver->async_resolve(query, bind(&impl::resolveHandler, this, _1, _2, resolver));
     }
diff --git a/src/transport/tcp-transport.cpp b/src/transport/tcp-transport.cpp
index 8f835a6..fafe987 100644
--- a/src/transport/tcp-transport.cpp
+++ b/src/transport/tcp-transport.cpp
@@ -34,8 +34,7 @@
   if (!static_cast<bool>(m_impl)) {
     Transport::connect(ioService, receiveCallback);
 
-    m_impl = make_shared<Impl> (boost::ref(*this),
-                                boost::ref(ioService));
+    m_impl = make_shared<Impl>(ref(*this), ref(ioService));
   }
 
   boost::asio::ip::tcp::resolver::query query(m_host, m_port);
diff --git a/src/transport/unix-transport.cpp b/src/transport/unix-transport.cpp
index cce5f0f..a7acd44 100644
--- a/src/transport/unix-transport.cpp
+++ b/src/transport/unix-transport.cpp
@@ -77,8 +77,7 @@
   if (!static_cast<bool>(m_impl)) {
     Transport::connect(ioService, receiveCallback);
 
-    m_impl = make_shared<Impl> (boost::ref(*this),
-                                boost::ref(ioService));
+    m_impl = make_shared<Impl>(ref(*this), ref(ioService));
   }
 
   m_impl->connect(boost::asio::local::stream_protocol::endpoint(m_unixSocket));
