diff --git a/ntrip-client.cabal b/ntrip-client.cabal
--- a/ntrip-client.cabal
+++ b/ntrip-client.cabal
@@ -1,5 +1,5 @@
 name:                  ntrip-client
-version:               0.1.4
+version:               0.1.5
 synopsis:              NTRIP client.
 description:           Networked Transport of RTCM via Internet Protocol client.
 license:               BSD3
@@ -8,7 +8,7 @@
 copyright:             Copyright (C) 2016 Swift Navigation, Inc.
 category:              Network
 build-type:            Simple
-cabal-version:         >=1.10
+cabal-version:         >= 1.22
 
 library
   hs-source-dirs:      src
@@ -16,7 +16,7 @@
   ghc-options:         -Wall
   default-language:    Haskell2010
   build-depends:       attoparsec
-                     , base >= 4.7 && < 5
+                     , base == 4.8.*
                      , base64-bytestring
                      , basic-prelude
                      , bytestring
diff --git a/src/Network/Ntrip/Client.hs b/src/Network/Ntrip/Client.hs
--- a/src/Network/Ntrip/Client.hs
+++ b/src/Network/Ntrip/Client.hs
@@ -3,7 +3,9 @@
 {-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE OverloadedStrings #-}
 
-module Network.Ntrip.Client where
+module Network.Ntrip.Client
+  ( runNtrip
+  ) where
 
 import BasicPrelude                     hiding (intercalate, tail)
 import Control.Concurrent.Async.Lifted
@@ -33,7 +35,7 @@
 tcpClient :: MonadNtrip m => ByteString -> Int -> SourceByteString m -> SinkByteString m -> m ()
 tcpClient host port source sink =
   runGeneralTCPClient (clientSettings port host) $ \ad ->
-    void $ concurrently (source $$ appSink ad) (appSource ad $$ sink)
+    race_ (source $$ appSink ad) (appSource ad $$ sink)
 
 sourceNtrip :: MonadNtrip m => ByteString -> ByteString -> ByteString -> SourceByteString m -> SourceByteString m
 sourceNtrip path user password source = do
