diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.5.2.0
+=======
+* Allow newer versions of either by conditionally adding instances for the removed EitherT interface.
+
 0.5.1.0
 =======
 * Add mkFileScribe, a specialization of mkHandleScribe for files that manages the handle automatically.
diff --git a/katip.cabal b/katip.cabal
--- a/katip.cabal
+++ b/katip.cabal
@@ -1,5 +1,5 @@
 name:                katip
-version:             0.5.1.0
+version:             0.5.2.0
 synopsis:            A structured logging framework.
 description:
   Katip is a structured logging framework. See README.md for more details.
@@ -8,7 +8,7 @@
 license-file:        LICENSE
 author:              Ozgun Ataman, Michael Xavier
 maintainer:          michael.xavier@soostone.com
-copyright:           Soostone Inc, 2015-2016
+copyright:           Soostone Inc, 2015-2017
 category:            Data, Text, Logging
 homepage:            https://github.com/Soostone/katip
 bug-reports:         https://github.com/Soostone/katip/issues
@@ -59,7 +59,7 @@
                , auto-update >= 0.1 && < 0.2
                , bytestring >= 0.9 && < 0.11
                , containers >=0.4 && <0.6
-               , either >= 4 && < 4.5
+               , either >= 4 && < 5.1
                , safe-exceptions >= 0.1.0.0
                , hostname >=1.0 && <1.1
                , old-locale >= 1.0 && < 1.1
diff --git a/src/Katip/Core.hs b/src/Katip/Core.hs
--- a/src/Katip/Core.hs
+++ b/src/Katip/Core.hs
@@ -35,7 +35,9 @@
 import           Control.Monad.IO.Class
 import           Control.Monad.Trans.Class
 import           Control.Monad.Trans.Control
+#if !MIN_VERSION_either(4, 5, 0)
 import           Control.Monad.Trans.Either
+#endif
 import           Control.Monad.Trans.Except
 import           Control.Monad.Trans.Maybe
 import           Control.Monad.Trans.Reader
@@ -752,9 +754,11 @@
     localLogEnv = mapReaderT . localLogEnv
 
 
+#if !MIN_VERSION_either(4, 5, 0)
 instance Katip m => Katip (EitherT s m) where
     getLogEnv = lift getLogEnv
     localLogEnv = mapEitherT . localLogEnv
+#endif
 
 
 instance Katip m => Katip (ExceptT s m) where
diff --git a/src/Katip/Monadic.hs b/src/Katip/Monadic.hs
--- a/src/Katip/Monadic.hs
+++ b/src/Katip/Monadic.hs
@@ -46,7 +46,9 @@
 import           Control.Monad.Reader
 import           Control.Monad.State
 import           Control.Monad.Trans.Control
+#if !MIN_VERSION_either(4, 5, 0)
 import           Control.Monad.Trans.Either        (EitherT, mapEitherT)
+#endif
 import           Control.Monad.Trans.Except        (ExceptT, mapExceptT)
 import           Control.Monad.Trans.Identity      (IdentityT, mapIdentityT)
 import           Control.Monad.Trans.List          (ListT, mapListT)
@@ -152,11 +154,13 @@
   localKatipNamespace = mapMaybeT . localKatipNamespace
 
 
+#if !MIN_VERSION_either(4, 5, 0)
 instance (KatipContext m, Katip (EitherT e m)) => KatipContext (EitherT e m) where
   getKatipContext = lift getKatipContext
   localKatipContext = mapEitherT . localKatipContext
   getKatipNamespace = lift getKatipNamespace
   localKatipNamespace = mapEitherT . localKatipNamespace
+#endif
 
 
 instance (KatipContext m, Katip (ListT m)) => KatipContext (ListT m) where
