diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,7 @@
+## Changes in 0.10.1 [2018.04.10]
+- Add `Data.List.NonEmpty.Compat`.
+- Reexport `(Data.Semigroup.<>)` from `Data.Monoid.Compat` back to `base-4.9`.
+
 ## Changes in 0.10.0 [2018.04.05]
  - Sync with `base-4.11`/GHC 8.4
  - Backport `Semigroup((<>))` to `Prelude.Compat`.
diff --git a/base-compat.cabal b/base-compat.cabal
--- a/base-compat.cabal
+++ b/base-compat.cabal
@@ -1,5 +1,5 @@
 name:             base-compat
-version:          0.10.0
+version:          0.10.1
 license:          MIT
 license-file:     LICENSE
 copyright:        (c) 2012-2018 Simon Hengel,
@@ -97,6 +97,7 @@
       Data.Functor.Sum.Compat
       Data.IORef.Compat
       Data.List.Compat
+      Data.List.NonEmpty.Compat
       Data.Monoid.Compat
       Data.Proxy.Compat
       Data.Ratio.Compat
@@ -151,6 +152,7 @@
       Data.Functor.Sum.Compat.Repl
       Data.IORef.Compat.Repl
       Data.List.Compat.Repl
+      Data.List.NonEmpty.Compat.Repl
       Data.Monoid.Compat.Repl
       Data.Proxy.Compat.Repl
       Data.Ratio.Compat.Repl
diff --git a/src/Data/List/NonEmpty/Compat.hs b/src/Data/List/NonEmpty/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/List/NonEmpty/Compat.hs
@@ -0,0 +1,78 @@
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+-- | This backports the modern "Data.Semigroup" interface back to
+-- @base-4.9@/GHC 8.0.
+module Data.List.NonEmpty.Compat (
+#if MIN_VERSION_base(4,9,0)
+  -- * The type of non-empty streams
+    NonEmpty(..)
+
+  -- * Non-empty stream transformations
+  , map         
+  , intersperse 
+  , scanl       
+  , scanr       
+  , scanl1      
+  , scanr1      
+  , transpose   
+  , sortBy      
+  , sortWith      
+  -- * Basic functions
+  , length      
+  , head        
+  , tail        
+  , last        
+  , init        
+  , (<|), cons  
+  , uncons      
+  , unfoldr     
+  , sort        
+  , reverse     
+  , inits       
+  , tails       
+  -- * Building streams
+  , iterate     
+  , repeat      
+  , cycle       
+  , unfold      
+  , insert      
+  , some1       
+  -- * Extracting sublists
+  , take        
+  , drop        
+  , splitAt     
+  , takeWhile   
+  , dropWhile   
+  , span        
+  , break       
+  , filter      
+  , partition   
+  , group       
+  , groupBy     
+  , groupWith     
+  , groupAllWith  
+  , group1      
+  , groupBy1    
+  , groupWith1     
+  , groupAllWith1  
+  -- * Sublist predicates
+  , isPrefixOf  
+  -- * \"Set\" operations
+  , nub         
+  , nubBy       
+  -- * Indexing streams
+  , (!!)        
+  -- * Zipping and unzipping streams
+  , zip         
+  , zipWith     
+  , unzip       
+  -- * Converting to and from a list
+  , fromList    
+  , toList      
+  , nonEmpty    
+  , xor         
+#endif
+) where
+
+#if MIN_VERSION_base(4,9,0)
+import Data.List.NonEmpty
+#endif
diff --git a/src/Data/List/NonEmpty/Compat/Repl.hs b/src/Data/List/NonEmpty/Compat/Repl.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/List/NonEmpty/Compat/Repl.hs
@@ -0,0 +1,8 @@
+{-# LANGUAGE PackageImports #-}
+{-# OPTIONS_GHC -fno-warn-dodgy-exports -fno-warn-unused-imports #-}
+-- | Reexports "Data.List.NonEmpty.Compat"
+-- from a globally unique namespace.
+module Data.List.NonEmpty.Compat.Repl (
+  module Data.List.NonEmpty.Compat
+) where
+import "this" Data.List.NonEmpty.Compat
diff --git a/src/Data/Monoid/Compat.hs b/src/Data/Monoid/Compat.hs
--- a/src/Data/Monoid/Compat.hs
+++ b/src/Data/Monoid/Compat.hs
@@ -5,8 +5,14 @@
 ) where
 
 import Data.Monoid as Base
+#if MIN_VERSION_base(4,9,0)
+  hiding ((<>))
+#endif
+#if MIN_VERSION_base(4,9,0)
+import Data.Semigroup ((<>))
+#endif
 
-#if !(MIN_VERSION_base(4,5,0))
+#if !(MIN_VERSION_base(4,5,0)) && !(MIN_VERSION_base(4,9,0))
 
 infixr 6 <>
 
