diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+* 0.4.4: 8 April 2018
+
+- Fix build on older (< 7.10) GHCs (thanks to George Wilson for the fix)
+
 * 0.4.3: 3 April 2018
 
 - Allow base-4.11
diff --git a/monoid-extras.cabal b/monoid-extras.cabal
--- a/monoid-extras.cabal
+++ b/monoid-extras.cabal
@@ -1,5 +1,5 @@
 name:                monoid-extras
-version:             0.4.3
+version:             0.4.4
 synopsis:            Various extra monoid-related definitions and utilities
 description:         Various extra monoid-related definitions and utilities,
                      such as monoid actions, monoid coproducts, semi-direct
diff --git a/src/Data/Monoid/Inf.hs b/src/Data/Monoid/Inf.hs
--- a/src/Data/Monoid/Inf.hs
+++ b/src/Data/Monoid/Inf.hs
@@ -4,6 +4,7 @@
 {-# LANGUAGE DeriveTraversable  #-}
 {-# LANGUAGE EmptyDataDecls     #-}
 {-# LANGUAGE FlexibleInstances  #-}
+{-# LANGUAGE TypeSynonymInstances #-}
 {-# OPTIONS_GHC -fno-warn-unused-imports       #-}
 
 -----------------------------------------------------------------------------
diff --git a/src/Data/Monoid/SemiDirectProduct.hs b/src/Data/Monoid/SemiDirectProduct.hs
--- a/src/Data/Monoid/SemiDirectProduct.hs
+++ b/src/Data/Monoid/SemiDirectProduct.hs
@@ -36,8 +36,10 @@
           (ys, ym) = unSemi y
   {-# INLINE (<>) #-}
 
+#if MIN_VERSION_base(4,8,0)
   sconcat = foldr1 (<>)
   {-# INLINE sconcat #-}
+#endif
 
 instance (Monoid m, Monoid s, Action m s) => Monoid (Semi s m) where
   mempty      = Semi (mempty, mempty)
diff --git a/src/Data/Monoid/SemiDirectProduct/Strict.hs b/src/Data/Monoid/SemiDirectProduct/Strict.hs
--- a/src/Data/Monoid/SemiDirectProduct/Strict.hs
+++ b/src/Data/Monoid/SemiDirectProduct/Strict.hs
@@ -37,8 +37,11 @@
 instance (Semigroup m, Semigroup s, Action m s) => Semigroup (Semi s m) where
   Semi xs xm <> Semi ys ym          = Semi (xs <> (xm `act` ys)) (xm <> ym)
   {-# INLINE (<>) #-}
+
+#if MIN_VERSION_base(4,8,0)
   sconcat                           = foldr1 (<>)
   {-# INLINE sconcat #-}
+#endif
 
 instance (Monoid m, Monoid s, Action m s) => Monoid (Semi s m) where
   mempty                            = Semi mempty mempty
