diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+0.14.1
+-----------------------------------------------------------------------------
+- Maintenance release to enable compatibility with GHC 8.4.
+
 0.14.0
 -----------------------------------------------------------------------------
 - `setFormat` now expects a `Maybe DateFormat` to allow for not having a date
diff --git a/src/System/Logger.hs b/src/System/Logger.hs
--- a/src/System/Logger.hs
+++ b/src/System/Logger.hs
@@ -89,9 +89,9 @@
 -- @
 -- $ LOG_LEVEL=Info LOG_LEVEL_MAP='[("foo", Warn), ("bar", Trace)]' cabal repl
 -- > g1 <- new defSettings
--- > let g2 = clone (Just "foo") g
--- > let g3 = clone (Just "bar") g
--- > let g4 = clone (Just "xxx") g
+-- > let g2 = clone (Just "foo") g1
+-- > let g3 = clone (Just "bar") g1
+-- > let g4 = clone (Just "xxx") g1
 -- > logLevel (settings g1)
 -- Info
 -- > logLevel (settings g2)
diff --git a/src/System/Logger/Message.hs b/src/System/Logger/Message.hs
--- a/src/System/Logger/Message.hs
+++ b/src/System/Logger/Message.hs
@@ -3,6 +3,7 @@
 -- file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
 {-# LANGUAGE BangPatterns      #-}
+{-# LANGUAGE CPP               #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE FlexibleInstances #-}
 
@@ -29,10 +30,17 @@
     , render
     ) where
 
+#if MIN_VERSION_base(4,9,0)
+import Data.Semigroup as Sem
+#endif
+
+#if !(MIN_VERSION_base(4,8,0))
+import Data.Monoid
+#endif
+
 import Data.ByteString (ByteString)
 import Data.Double.Conversion.Text
 import Data.Int
-import Data.Monoid
 import Data.String
 import Data.Text (Text)
 import Data.Text.Encoding (encodeUtf8)
@@ -49,12 +57,26 @@
 
 data Builder = Builder !Int B.Builder
 
-instance Monoid Builder where
-    mempty = Builder 0 mempty
-    (Builder x a) `mappend` (Builder y b) = Builder (x + y) (a <> b)
-
 instance IsString Builder where
     fromString = bytes
+
+appendBuilder:: Builder -> Builder -> Builder
+appendBuilder (Builder x a) (Builder y b) = Builder (x + y) (a <> b)
+
+#if MIN_VERSION_base(4,9,0)
+instance Sem.Semigroup Builder where
+    (<>) = appendBuilder
+#endif
+
+instance Monoid Builder where
+    mempty = Builder 0 mempty
+#if MIN_VERSION_base(4,11,0)
+    -- mappend definitions are redundant now
+#elif MIN_VERSION_base(4,9,0)
+    mappend = (Sem.<>)
+#else
+    mappend = appendBuilder
+#endif
 
 eval :: Builder -> L.ByteString
 eval (Builder n b) = B.toLazyByteStringWith (B.safeStrategy n 256) L.empty b
diff --git a/tinylog.cabal b/tinylog.cabal
--- a/tinylog.cabal
+++ b/tinylog.cabal
@@ -1,5 +1,5 @@
 name:                 tinylog
-version:              0.14.0
+version:              0.14.1
 synopsis:             Simplistic logging using fast-logger.
 author:               Toralf Wittner
 maintainer:           Toralf Wittner <tw@dtex.org>
