diff --git a/Network/TLS/Context.hs b/Network/TLS/Context.hs
--- a/Network/TLS/Context.hs
+++ b/Network/TLS/Context.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 -- |
 -- Module      : Network.TLS.Context
 -- License     : BSD-style
@@ -49,7 +50,6 @@
 import Network.TLS.Crypto
 import Network.TLS.State
 import Network.TLS.Measurement
-import Data.Maybe
 import Data.Certificate.X509
 import Data.List (intercalate)
 import qualified Data.ByteString as B
@@ -59,7 +59,10 @@
 import Control.Exception (throwIO, Exception())
 import Data.IORef
 import System.IO (Handle, hSetBuffering, BufferMode(..), hFlush)
+
+#if !MIN_VERSION_base(4,6,0)
 import Prelude hiding (catch)
+#endif
 
 data TLSLogging = TLSLogging
 	{ loggingPacketSent :: String -> IO ()
diff --git a/Network/TLS/Core.hs b/Network/TLS/Core.hs
--- a/Network/TLS/Core.hs
+++ b/Network/TLS/Core.hs
@@ -1,4 +1,5 @@
 {-# OPTIONS_HADDOCK hide #-}
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 -- |
 -- Module      : Network.TLS.Core
@@ -54,7 +55,9 @@
 import Control.Exception (throwIO, Exception(), fromException, catch, SomeException)
 import System.IO (Handle)
 import System.IO.Error (mkIOError, eofErrorType)
+#if !MIN_VERSION_base(4,6,0)
 import Prelude hiding (catch)
+#endif
 
 data HandshakeFailed = HandshakeFailed TLSError
 	deriving (Show,Eq,Typeable)
diff --git a/tls.cabal b/tls.cabal
--- a/tls.cabal
+++ b/tls.cabal
@@ -1,5 +1,5 @@
 Name:                tls
-Version:             0.9.8
+Version:             0.9.9
 Description:
    Native Haskell TLS and SSL protocol implementation for server and client.
    .
