diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,9 @@
+4.9.1
+-----
+* Added `_Wrapped` support for `NonEmpty`.
+* Added `_Wrapped` support for `Alt`.
+* Fixed `Rewrapped` instance for `Last`.
+
 4.9
 -------
 * `filepath` 1.4 support
diff --git a/lens.cabal b/lens.cabal
--- a/lens.cabal
+++ b/lens.cabal
@@ -1,6 +1,6 @@
 name:          lens
 category:      Data, Lenses, Generics
-version:       4.9
+version:       4.9.1
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
diff --git a/src/Control/Lens/Wrapped.hs b/src/Control/Lens/Wrapped.hs
--- a/src/Control/Lens/Wrapped.hs
+++ b/src/Control/Lens/Wrapped.hs
@@ -13,6 +13,11 @@
 {-# LANGUAGE Trustworthy #-}
 #endif
 {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-}
+
+#ifndef MIN_VERSION_base
+#define MIN_VERSION_base(x,y,z) 1
+#endif
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Lens.Wrapped
@@ -91,6 +96,7 @@
 import           Data.IntMap as IntMap
 import           Data.HashSet as HashSet
 import           Data.HashMap.Lazy as HashMap
+import           Data.List.NonEmpty
 import           Data.Map as Map
 import           Data.Monoid
 import qualified Data.Semigroup as S
@@ -102,6 +108,10 @@
 import           Data.Vector.Unboxed as Unboxed
 import           Data.Vector.Storable as Storable
 
+#ifdef HLINT
+{-# ANN module "HLint: ignore Use uncurry" #-}
+#endif
+
 -- $setup
 -- >>> :set -XNoOverloadedStrings
 -- >>> import Control.Lens
@@ -189,6 +199,12 @@
   _Wrapped' = iso getZipList ZipList
   {-# INLINE _Wrapped' #-}
 
+instance (t ~ NonEmpty b) => Rewrapped (NonEmpty a) t
+instance Wrapped (NonEmpty a) where
+  type Unwrapped (NonEmpty a) = (a, [a])
+  _Wrapped' = iso (\(a :| as) -> (a, as)) (\(a,as) -> a :| as)
+  {-# INLINE _Wrapped' #-}
+
 instance (t ~ Const a' x') => Rewrapped (Const a x) t
 instance Wrapped (Const a x) where
   type Unwrapped (Const a x) = a
@@ -213,11 +229,19 @@
   _Wrapped' = iso getFirst First
   {-# INLINE _Wrapped' #-}
 
-instance (t ~ Last b) => Rewrapped (Last b) t
+instance (t ~ Last b) => Rewrapped (Last a) t
 instance Wrapped (Last a) where
   type Unwrapped (Last a) = Maybe a
   _Wrapped' = iso getLast Last
   {-# INLINE _Wrapped' #-}
+
+#if MIN_VERSION_base(4,8,0)
+instance (t ~ Alt g b) => Rewrapped (Alt f a) t
+instance Wrapped (Alt f a) where
+  type Unwrapped (Alt f a) = f a
+  _Wrapped' = iso getAlt Alt
+  {-# INLINE _Wrapped' #-}
+#endif
 
 instance (t ~ ArrowMonad m' a', ArrowApply m, ArrowApply m') => Rewrapped (ArrowMonad m a) t
 instance ArrowApply m => Wrapped (ArrowMonad m a) where
