diff --git a/network-transport-tests.cabal b/network-transport-tests.cabal
--- a/network-transport-tests.cabal
+++ b/network-transport-tests.cabal
@@ -1,12 +1,12 @@
 name:                network-transport-tests
-version:             0.2.2.0
+version:             0.2.3.0
 synopsis:            Unit tests for Network.Transport implementations
 -- description:
 homepage:            http://haskell-distributed.github.com
 license:             BSD3
 license-file:        LICENSE
 author:              Edsko de Vries
-maintainer:          edsko@well-typed.com, watson.timothy@gmail.com
+maintainer:          Facundo Domínguez <facundo.dominguez@tweag.io>
 copyright:           Well-Typed LLP
 category:            Network
 build-type:          Simple
diff --git a/src/Network/Transport/Tests.hs b/src/Network/Transport/Tests.hs
--- a/src/Network/Transport/Tests.hs
+++ b/src/Network/Transport/Tests.hs
@@ -12,7 +12,14 @@
   )
 import Control.Concurrent (forkIO, killThread, yield)
 import Control.Concurrent.MVar (newEmptyMVar, takeMVar, putMVar, readMVar, tryTakeMVar, modifyMVar_, newMVar)
-import Control.Exception (evaluate, throw, throwIO, bracket)
+import Control.Exception
+  ( evaluate
+  , throw
+  , throwIO
+  , bracket
+  , catch
+  , ErrorCall(..)
+  )
 import Control.Monad (replicateM, replicateM_, when, guard, forM_, unless)
 import Control.Monad.Error ()
 import Control.Applicative ((<$>))
@@ -392,6 +399,21 @@
 
   takeMVar done
 
+-- | Test that sending an error to self gives an error in the sender
+testSelfSend :: Transport -> IO ()
+testSelfSend transport = do
+    Right endpoint <- newEndPoint transport
+
+    Right conn <- connect endpoint (address endpoint) ReliableOrdered
+                          defaultConnectHints
+
+    do send conn [ error "bang!" ]
+       error "testSelfSend: send didn't fail"
+     `catch` (\(ErrorCall "bang!") -> return ())
+
+    close conn
+    closeEndPoint endpoint
+
 -- | Test that sending on a closed connection gives an error
 testSendAfterClose :: Transport -> Int -> IO ()
 testSendAfterClose transport numRepeats = do
@@ -573,7 +595,12 @@
   -- Close the transport; now the second should no longer work
   closeTransport transport
   Left (TransportError SendFailed _) <- send conn3 ["ping"]
-  Left (TransportError ConnectFailed _) <- connect endpoint2 (address endpoint2) ReliableOrdered defaultConnectHints
+  Left r <- connect endpoint2 (address endpoint2) ReliableOrdered defaultConnectHints
+  case r of
+    TransportError ConnectFailed _ -> return ()
+    _ -> do putStrLn $ "Actual: " ++ show r
+            TransportError ConnectFailed _ <- return r
+            return ()
 
   return ()
 
@@ -954,6 +981,7 @@
     , ("CloseOneDirection",     testCloseOneDirection transport numPings)
     , ("CloseReopen",           testCloseReopen transport numPings)
     , ("ParallelConnects",      testParallelConnects transport numPings)
+    , ("SelfSend",              testSelfSend transport)
     , ("SendAfterClose",        testSendAfterClose transport 100)
     , ("Crossing",              testCrossing transport 10)
     , ("CloseTwice",            testCloseTwice transport 100)
