diff --git a/CHANGES.markdown b/CHANGES.markdown
--- a/CHANGES.markdown
+++ b/CHANGES.markdown
@@ -1,3 +1,8 @@
+## Changes in 0.5.4
+ - Backported `Bits`, `FiniteBits`, `Floating`, `Fractional`, `Integral`,
+   `IsString`, `Num`, `Real`, `RealFloat`, and `RealFrac` instances for
+   `Identity` and `Const` (introduced in `base-4.9`)
+
 ## Changes in 0.5.3
  - Backported `Alternative`, `MonadPlus` and `MonadZip` instances for `U1` and
    `Proxy`, and made the `Functor`, `Foldable`, `Traversable`, `Alternative`,
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -31,13 +31,15 @@
 
 ## What is covered
 
+ * `Alternative`, `MonadPlus`, and `MonadZip` instances for `Proxy`
+ * `Alternative`, `Applicative`, `Bounded`, `Data`, `Enum`, `Foldable`, `Functor`, `Ix`, `Monad`, `MonadFix`, `MonadPlus`, `MonadZip`, and `Traversable` instances for data types in `GHC.Generics`
  * `Applicative` and `Alternative` instances for `ReadP` and `ReadPrec`
  * `Applicative` instance for strict and lazy `ST`
  * `Applicative`, `Foldable`, `Functor`, `Monad`, and `Traversable` instances for `Complex`,
    `Dual`, `First`, `Last`, `Product`, and `Sum`
  * `Bits` instance for `Bool`
  * `Bits`, `Bounded`, and `Integral` instances for `CDev`
- * `Bounded`, `Enum`, `Ix`, and `Storable` instances for `Const` and `Identity`
+ * `Bits`, `Bounded`, `Enum`, `FiniteBits`, `Floating`, `Fractional`, `Integral`, `IsString`, `Ix`, `Num`, `Real`, `RealFloat`, `RealFrac`, and `Storable` instances for `Const` and `Identity`
  * `Data` instances for `All` and `Any`
  * `Data`, `MonadFix` and `MonadZip` instances for `Alt`, `Dual`, `First`, `Last`,
    `Product`, and `Sum`
diff --git a/base-orphans.cabal b/base-orphans.cabal
--- a/base-orphans.cabal
+++ b/base-orphans.cabal
@@ -1,9 +1,9 @@
--- This file has been generated from package.yaml by hpack version 0.10.0.
+-- This file has been generated from package.yaml by hpack version 0.12.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:                base-orphans
-version:             0.5.3
+version:             0.5.4
 synopsis:            Backwards-compatible orphan instances for base
 description:         @base-orphans@ defines orphan instances that mimic instances available in later versions of @base@ to a wider (older) range of compilers. @base-orphans@ does not export anything except the orphan instances themselves and complements @<http://hackage.haskell.org/package/base-compat base-compat>@.
                      See the README for what instances are covered: <https://github.com/haskell-compat/base-orphans#readme>. See also the <https://github.com/haskell-compat/base-orphans#what-is-not-covered what is not covered> section.
diff --git a/src/Data/Orphans.hs b/src/Data/Orphans.hs
--- a/src/Data/Orphans.hs
+++ b/src/Data/Orphans.hs
@@ -404,10 +404,19 @@
   peek _ = return ()
   poke _ _ = return ()
 
-deriving instance Bounded a  => Bounded (Const a b)
-deriving instance Enum a     => Enum (Const a b)
-deriving instance Ix a       => Ix (Const a b)
-deriving instance Storable a => Storable (Const a b)
+deriving instance Bits a       => Bits (Const a b)
+deriving instance Bounded a    => Bounded (Const a b)
+deriving instance Enum a       => Enum (Const a b)
+deriving instance Floating a   => Floating (Const a b)
+deriving instance Fractional a => Fractional (Const a b)
+deriving instance Integral a   => Integral (Const a b)
+deriving instance IsString a   => IsString (Const a b)
+deriving instance Ix a         => Ix (Const a b)
+deriving instance Num a        => Num (Const a b)
+deriving instance Real a       => Real (Const a b)
+deriving instance RealFloat a  => RealFloat (Const a b)
+deriving instance RealFrac a   => RealFrac (Const a b)
+deriving instance Storable a   => Storable (Const a b)
 
 deriving instance           Data All
 deriving instance           Data Monoid.Any
@@ -625,6 +634,8 @@
 instance MonadZip Proxy where
     mzipWith _ _ _ = Proxy
     {-# INLINE mzipWith #-}
+
+deriving instance FiniteBits a => FiniteBits (Const a b)
 # endif
 
 # if MIN_VERSION_base(4,8,0)
@@ -637,11 +648,21 @@
 instance MonadZip f => MonadZip (Alt f) where
     mzipWith f (Alt ma) (Alt mb) = Alt (mzipWith f ma mb)
 
-deriving instance Bounded a  => Bounded (Identity a)
-deriving instance Enum a     => Enum (Identity a)
-deriving instance Ix a       => Ix (Identity a)
-deriving instance Monoid a   => Monoid (Identity a)
-deriving instance Storable a => Storable (Identity a)
+deriving instance Bits a       => Bits (Identity a)
+deriving instance Bounded a    => Bounded (Identity a)
+deriving instance Enum a       => Enum (Identity a)
+deriving instance FiniteBits a => FiniteBits (Identity a)
+deriving instance Floating a   => Floating (Identity a)
+deriving instance Fractional a => Fractional (Identity a)
+deriving instance Integral a   => Integral (Identity a)
+deriving instance IsString a   => IsString (Identity a)
+deriving instance Ix a         => Ix (Identity a)
+deriving instance Monoid a     => Monoid (Identity a)
+deriving instance Num a        => Num (Identity a)
+deriving instance Real a       => Real (Identity a)
+deriving instance RealFloat a  => RealFloat (Identity a)
+deriving instance RealFrac a   => RealFrac (Identity a)
+deriving instance Storable a   => Storable (Identity a)
 # endif
 
 # if __GLASGOW_HASKELL__ >= 701
diff --git a/src/Data/Orphans/Prelude.hs b/src/Data/Orphans/Prelude.hs
--- a/src/Data/Orphans/Prelude.hs
+++ b/src/Data/Orphans/Prelude.hs
@@ -29,6 +29,7 @@
 import Data.Int as OrphansPrelude
 import Data.Ix as OrphansPrelude
 import Data.List as OrphansPrelude (genericLength)
+import Data.String as OrphansPrelude (IsString)
 import Data.Version as OrphansPrelude
 import Data.Word as OrphansPrelude
 
