diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
 # Change Log
 
+## [1.6.1](https://github.com/brendanhay/amazonka/tree/1.6.1)
+Released: **03 Feb, 2019**, Compare: [1.6.0](https://github.com/brendanhay/amazonka/compare/1.6.0...1.6.1)
+
+### Fixed
+
+- Correctly catch exceptions in perform. [\#464](https://github.com/brendanhay/amazonka/pull/464)
+
+### Changed
+
+- Add a `MonadUnliftIO` instance for `AWST'`. [\#461](https://github.com/brendanhay/amazonka/pull/461)
+- Add FromText instances for Int64, String and Seconds. [\#489](https://github.com/brendanhay/amazonka/pull/489)
+- Add generalBracket for MonadMask instance on AWST'. [\#492](https://github.com/brendanhay/amazonka/pull/492)
+- Remove fractional seconds from serialization of iso8601 timestamps [\#502](https://github.com/brendanhay/amazonka/pull/502)
+
+
 ## [1.6.0](https://github.com/brendanhay/amazonka/tree/1.6.0)
 Released: **16 May, 2018**, Compare: [1.5.0](https://github.com/brendanhay/amazonka/compare/1.5.0...1.6.0)
 
diff --git a/amazonka.cabal b/amazonka.cabal
--- a/amazonka.cabal
+++ b/amazonka.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka
-version:               1.6.0
+version:               1.6.1
 synopsis:              Comprehensive Amazon Web Services SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -60,7 +60,7 @@
         , Network.AWS.Internal.Logger
 
     build-depends:
-          amazonka-core       == 1.6.0.*
+          amazonka-core       == 1.6.1.*
         , base                >= 4.7 && < 5
         , bytestring          >= 0.9
         , conduit             >= 1.1
@@ -81,6 +81,7 @@
         , transformers        >= 0.2
         , transformers-base   >= 0.4
         , transformers-compat >= 0.3
+        , unliftio-core       >= 0.1
         , void                >= 0.1
 
 test-suite tests
diff --git a/src/Control/Monad/Trans/AWS.hs b/src/Control/Monad/Trans/AWS.hs
--- a/src/Control/Monad/Trans/AWS.hs
+++ b/src/Control/Monad/Trans/AWS.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE BangPatterns               #-}
 {-# LANGUAGE ConstraintKinds            #-}
+{-# LANGUAGE CPP                        #-}
 {-# LANGUAGE FlexibleContexts           #-}
 {-# LANGUAGE FlexibleInstances          #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
@@ -160,6 +161,7 @@
 import Control.Monad.Base
 import Control.Monad.Catch
 import Control.Monad.Error.Class    (MonadError (..))
+import Control.Monad.IO.Unlift
 import Control.Monad.Morph
 import Control.Monad.Reader
 import Control.Monad.State.Class
@@ -215,6 +217,15 @@
     uninterruptibleMask a = AWST' $ uninterruptibleMask $ \u ->
         unAWST $ a (AWST' . u . unAWST)
 
+#if MIN_VERSION_exceptions(0,10,0)
+    generalBracket acquire rel action = AWST' $
+        generalBracket
+            (unAWST acquire)
+            (\a ex -> unAWST $ rel a ex)
+            (\a -> unAWST $ action a)
+#endif
+
+
 instance MonadBase b m => MonadBase b (AWST' r m) where
     liftBase = liftBaseDefault
 
@@ -230,6 +241,10 @@
     liftBaseWith = defaultLiftBaseWith
     restoreM     = defaultRestoreM
 
+instance MonadUnliftIO m => MonadUnliftIO (AWST' r m) where
+    askUnliftIO = AWST' $ (\(UnliftIO f) -> UnliftIO $ f . unAWST)
+        <$> askUnliftIO
+
 instance MonadResource m => MonadResource (AWST' r m) where
     liftResourceT = lift . liftResourceT
 
@@ -263,6 +278,7 @@
 -- which 'AWST' implicitly fulfils.
 type AWSConstraint r m =
     ( MonadThrow     m
+    , MonadCatch     m
     , MonadResource  m
     , MonadReader  r m
     , HasEnv       r
@@ -286,7 +302,7 @@
 paginate = go
   where
     go !x = do
-        !y <- send x
+        !y <- lift $ send x
         yield y
         maybe (pure ()) go (page x y)
 
diff --git a/src/Network/AWS/Internal/HTTP.hs b/src/Network/AWS/Internal/HTTP.hs
--- a/src/Network/AWS/Internal/HTTP.hs
+++ b/src/Network/AWS/Internal/HTTP.hs
@@ -23,11 +23,10 @@
 
 import Control.Arrow                (first)
 import Control.Monad
-import Control.Monad.Catch (MonadThrow)
+import Control.Monad.Catch (MonadThrow, MonadCatch, Handler(Handler), catches)
 import Control.Monad.Reader
 import Control.Monad.Trans.Resource
 import Control.Retry
-import Control.Exception (Handler(Handler), catches)
 
 import Data.List   (intersperse)
 import Data.Monoid
@@ -47,6 +46,7 @@
 #endif
 
 retrier :: ( MonadThrow m
+           , MonadCatch m
            , MonadResource m
            , MonadReader r m
            , HasEnv r
@@ -83,6 +83,7 @@
           ]
 
 waiter :: ( MonadThrow m
+          , MonadCatch m
           , MonadResource m
           , MonadReader r m
           , HasEnv r
@@ -122,11 +123,15 @@
           ]
 
 -- | The 'Service' is configured + unwrapped at this point.
-perform :: (MonadThrow m, MonadResource m, AWSRequest a)
+perform :: ( MonadThrow m
+           , MonadCatch m
+           , MonadResource m
+           , AWSRequest a
+           )
         => Env
         -> Request a
         -> m (Either Error (Response a))
-perform Env{..} x = liftIO $ catches (runResourceT go) handlers
+perform Env{..} x = catches go handlers
   where
     go = do
         t           <- liftIO getCurrentTime
@@ -142,7 +147,7 @@
 #else
         rs'         <- liftResourceT (http rq _envManager)
         let resSrc   = responseBody rs'
-        (src', fin) <- unwrapResumable resSrc
+        (src', fin) <- liftResourceT (unwrapResumable resSrc)
         let src = addCleanup (const fin) src'
         let rs  = src <$ rs'
 #endif
