diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.8.7.2
+=======
+* MTL 2.3 compatibility [#140](https://github.com/Soostone/katip/pull/140)
+
 0.8.7.1
 =======
 * Text 2 compatibility [#138](https://github.com/Soostone/katip/pull/138)
diff --git a/katip.cabal b/katip.cabal
--- a/katip.cabal
+++ b/katip.cabal
@@ -1,5 +1,5 @@
 name:                katip
-version:             0.8.7.1
+version:             0.8.7.2
 synopsis:            A structured logging framework.
 description:
   Katip is a structured logging framework. See README.md for more details.
diff --git a/src/Katip/Monadic.hs b/src/Katip/Monadic.hs
--- a/src/Katip/Monadic.hs
+++ b/src/Katip/Monadic.hs
@@ -43,11 +43,13 @@
 -------------------------------------------------------------------------------
 import Control.Applicative
 import Control.Exception.Safe
+import Control.Monad                               as CM
 import Control.Monad.Base
 import Control.Monad.Error.Class
 #if MIN_VERSION_base(4, 9, 0)
 import qualified Control.Monad.Fail                as MF
 #endif
+import Control.Monad.Fix                           as MFix
 import Control.Monad.IO.Class
 import Control.Monad.IO.Unlift
 import Control.Monad.Reader
@@ -71,7 +73,8 @@
   ( WriterT,
     mapWriterT,
   )
-import Control.Monad.Writer hiding ((<>))
+import qualified Control.Monad.Writer as Lazy (WriterT, mapWriterT)
+import Control.Monad.Writer.Class as WC
 import Data.Aeson
 #if MIN_VERSION_aeson(2, 0, 0)
 import qualified Data.Aeson.KeyMap as KM
@@ -233,11 +236,11 @@
   getKatipNamespace = lift getKatipNamespace
   localKatipNamespace = Strict.mapWriterT . localKatipNamespace
 
-instance (Monoid w, KatipContext m, Katip (WriterT w m)) => KatipContext (WriterT w m) where
+instance (Monoid w, KatipContext m, Katip (Lazy.WriterT w m)) => KatipContext (Lazy.WriterT w m) where
   getKatipContext = lift getKatipContext
-  localKatipContext = mapWriterT . localKatipContext
+  localKatipContext = Lazy.mapWriterT . localKatipContext
   getKatipNamespace = lift getKatipNamespace
-  localKatipNamespace = mapWriterT . localKatipNamespace
+  localKatipNamespace = Lazy.mapWriterT . localKatipNamespace
 
 instance (Monoid w, KatipContext m, Katip (Strict.RWST r w s m)) => KatipContext (Strict.RWST r w s m) where
   getKatipContext = lift getKatipContext
@@ -367,12 +370,12 @@
       MonadMask,
       MonadBase b,
       MonadState s,
-      MonadWriter w,
+      WC.MonadWriter w,
       MonadError e,
-      MonadPlus,
+      CM.MonadPlus,
       MonadResource,
       Alternative,
-      MonadFix,
+      MFix.MonadFix,
       MonadTrans
     )
 
@@ -481,11 +484,11 @@
       MonadMask,
       MonadBase b,
       MonadState s,
-      MonadWriter w,
+      WC.MonadWriter w,
       MonadError e,
-      MonadPlus,
+      CM.MonadPlus,
       Alternative,
-      MonadFix,
+      MFix.MonadFix,
       MonadReader r
     )
 
