diff --git a/changes.md b/changes.md
--- a/changes.md
+++ b/changes.md
@@ -1,3 +1,7 @@
+0.1.1.4
+
+  * Corrected an issue with memory transport where a message to an unbound destination would be dropped
+
 0.1.1.3
 
   * Changed with... functions to return specified types in IO, instead of always returning (); not technically a
diff --git a/courier.cabal b/courier.cabal
--- a/courier.cabal
+++ b/courier.cabal
@@ -1,5 +1,5 @@
 name:                courier
-version:             0.1.1.3
+version:             0.1.1.4
 synopsis:            A message-passing library for simplifying network applications
 tested-with:         GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 7.10.3, GHC == 8.0.1
 description:         Inspired by Erlang's simple message-passing facilities, courier provides roughly similar
diff --git a/src/Network/Transport/Memory.hs b/src/Network/Transport/Memory.hs
--- a/src/Network/Transport/Memory.hs
+++ b/src/Network/Transport/Memory.hs
@@ -67,7 +67,10 @@
     disp = do
       atomically $ do
         bindings <- readTVar vBindings
-        env <- readMailbox $ endpointOutbound endpoint
+        env <- selectMailbox (endpointOutbound endpoint) $ \envelope ->
+          case M.lookup (messageDestination envelope) bindings of
+            Just _ -> Just envelope
+            _ -> Nothing
         memoryDispatchEnvelope bindings env
       disp
 
@@ -104,7 +107,7 @@
 
 memoryFlushMessages :: TBindings -> Endpoint -> IO ()
 memoryFlushMessages vBindings endpoint =
-  atomically $ flush
+  atomically flush
   where
     flush = do
       bindings <- readTVar vBindings
