diff --git a/heavy-logger-instances.cabal b/heavy-logger-instances.cabal
--- a/heavy-logger-instances.cabal
+++ b/heavy-logger-instances.cabal
@@ -2,12 +2,14 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b62e7d81b220f1d2169f712ba478c44f28f6adc244aec7872b75874f6a3a6a34
+-- hash: b28515ba9f195713b669f5ce46894d10ec2bcba100434c30c597ce440f1a858c
 
 name:           heavy-logger-instances
-version:        0.1.0.0
+version:        0.2.0.0
 synopsis:       Orphan instances for data types in heavy-logger package
-description:    Orphan instances for data types in heavy-logger package
+description:    This package contains orphan instances for data types in heavy-logger package for:
+                * Binary type class (from binary package)
+                * MonadThrow, MonadCatch, MonadMask type classes (from exceptions package) for LoggingT transformer.
 category:       System
 homepage:       https://github.com/portnov/heavy-logger#readme
 bug-reports:    https://github.com/portnov/heavy-logger/issues
@@ -36,11 +38,13 @@
     , exceptions
     , heavy-logger >=0.3.2.0
     , hsyslog >=5.0.1
+    , mtl
     , template-haskell >=2.12
     , text >=1.2
     , text-format-heavy >=0.1.5.1
   exposed-modules:
       System.Log.Heavy.Instances.Binary
+      System.Log.Heavy.Instances.Throw
   other-modules:
       Paths_heavy_logger_instances
   default-language: Haskell2010
@@ -57,6 +61,7 @@
     , heavy-logger >=0.3.2.0
     , heavy-logger-instances
     , hsyslog >=5.0.1
+    , mtl
     , template-haskell >=2.12
     , text >=1.2
     , text-format-heavy >=0.1.5.1
diff --git a/src/System/Log/Heavy/Instances/Throw.hs b/src/System/Log/Heavy/Instances/Throw.hs
new file mode 100644
--- /dev/null
+++ b/src/System/Log/Heavy/Instances/Throw.hs
@@ -0,0 +1,25 @@
+
+-- | This module contains instances of MonadThrow, MonadCatch, MonadMsk type classes for
+-- LoggingT monad transformer defined in the heavy-logger package.
+--
+module System.Log.Heavy.Instances.Throw where
+
+import Control.Monad.Reader
+import Control.Monad.Catch 
+import System.Log.Heavy
+
+instance MonadThrow m => MonadThrow (LoggingT m) where
+  throwM e = LoggingT $ lift $ throwM e
+
+instance MonadCatch m => MonadCatch (LoggingT m) where
+  catch (LoggingT (ReaderT m)) c = LoggingT $ ReaderT $ \r -> m r `catch` \e -> runLoggingT (c e) r
+
+instance MonadMask m => MonadMask (LoggingT m) where
+  mask a = LoggingT $ ReaderT $ \lts -> mask $ \u -> runLoggingT (a $ q u) lts
+    where q :: (m a -> m a) -> LoggingT m a -> LoggingT m a
+          q u (LoggingT (ReaderT b)) = LoggingT (ReaderT (u . b))
+
+  uninterruptibleMask a = LoggingT $ ReaderT $ \lts -> uninterruptibleMask $ \u -> runLoggingT (a $ q u) lts
+    where q :: (m a -> m a) -> LoggingT m a -> LoggingT m a
+          q u (LoggingT (ReaderT b)) = LoggingT (ReaderT (u . b))
+
