diff --git a/src/transport/stream-transport.hpp b/src/transport/stream-transport.hpp
index 67aac43..04aeac3 100644
--- a/src/transport/stream-transport.hpp
+++ b/src/transport/stream-transport.hpp
@@ -91,11 +91,7 @@
     if (error) // e.g., cancelled timer
       return;
 
-    m_connectionInProgress = false;
-    m_transport.m_isConnected = false;
-    m_transport.m_isExpectingData = false;
-    m_socket.cancel();
-    m_socket.close();
+    m_transport.close();
     throw Transport::Error(error, "error while connecting to the forwarder");
   }
 
@@ -119,6 +115,8 @@
   void
   close()
   {
+    m_connectionInProgress = false;
+
     boost::system::error_code error; // to silently ignore all errors
     m_connectTimer.cancel(error);
     m_socket.cancel(error);
@@ -213,11 +211,7 @@
           return;
         }
 
-        boost::system::error_code error; // to silently ignore all errors
-        m_socket.cancel(error);
-        m_socket.close(error); // closing at this point may not be that necessary
-        m_transport.m_isConnected = true;
-        m_transport.m_isExpectingData = false;
+        m_transport.close();
         throw Transport::Error(error, "error while receiving data from socket");
       }
 
@@ -228,12 +222,7 @@
     bool ok = processAll(m_inputBuffer, offset, m_inputBufferSize);
     if (!ok && m_inputBufferSize == MAX_LENGTH && offset == 0)
       {
-        // very bad... should close connection
-        boost::system::error_code error; // to silently ignore all errors
-        m_socket.cancel(error);
-        m_socket.close(error);
-        m_transport.m_isConnected = false;
-        m_transport.m_isExpectingData = false;
+        m_transport.close();
         throw Transport::Error(boost::system::error_code(),
                                "input buffer full, but a valid TLV cannot be decoded");
       }
@@ -314,10 +303,7 @@
     typename protocol::resolver::iterator end;
     if (endpoint == end)
       {
-        this->m_connectionInProgress = false;
-        this->m_transport.m_isConnected = false;
-        this->m_transport.m_isExpectingData = false;
-        this->m_socket.close();
+        this->m_transport.close();
         throw Transport::Error(error, "Unable to resolve because host or port");
       }
 
diff --git a/src/transport/tcp-transport.cpp b/src/transport/tcp-transport.cpp
index 71bca13..6fab8e0 100644
--- a/src/transport/tcp-transport.cpp
+++ b/src/transport/tcp-transport.cpp
@@ -66,6 +66,7 @@
 TcpTransport::close()
 {
   m_impl->close();
+  m_impl.reset();
 }
 
 void
diff --git a/src/transport/unix-transport.cpp b/src/transport/unix-transport.cpp
index 295632a..cbfada8 100644
--- a/src/transport/unix-transport.cpp
+++ b/src/transport/unix-transport.cpp
@@ -111,6 +111,7 @@
 {
   BOOST_ASSERT(static_cast<bool>(m_impl));
   m_impl->close();
+  m_impl.reset();
 }
 
 void
