diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,12 @@
+0.3.0
+
+Author: AntoineLatter <aslatter@gmail.com>
+
+*  Update for QuickCheck-2.5.0
+*  Update instances for Ordering and RealFrac based on
+   instances provided in QuickCheck-2.5.0
+*  Allow building against newer containers packages
+
 0.2.0
 
 Author: Antoine Latter <aslatter@gmail.com>
diff --git a/quickcheck-instances.cabal b/quickcheck-instances.cabal
--- a/quickcheck-instances.cabal
+++ b/quickcheck-instances.cabal
@@ -1,5 +1,5 @@
 Name:                quickcheck-instances
-Version:             0.2.0
+Version:             0.3.0
 Synopsis:            Common quickcheck instances
 Description:         QuickCheck instances.
                      .
@@ -39,9 +39,9 @@
 
                        array >= 0.3 && < 0.5,
                        bytestring == 0.9.*,
-                       containers >= 0.3 && < 0.5,
+                       containers >= 0.3 && < 0.6,
                        old-time >= 1.0 && < 1.2,
-                       QuickCheck >= 2.1 && < 2.5,
+                       QuickCheck >= 2.1 && < 2.6,
                        text >= 0.7 && < 0.12,
                        time >= 1.1 && < 1.5
 
diff --git a/src/Test/QuickCheck/Instances.hs b/src/Test/QuickCheck/Instances.hs
--- a/src/Test/QuickCheck/Instances.hs
+++ b/src/Test/QuickCheck/Instances.hs
@@ -34,7 +34,7 @@
 import qualified Data.Array.Unboxed as Array
 import qualified Data.ByteString as BS
 import qualified Data.ByteString.Lazy as BL
-import qualified Data.Fixed as Fixed
+import qualified Data.Fixed as Fixed -- required for QC < 2.5.0
 import qualified Data.IntMap as IntMap
 import qualified Data.IntSet as IntSet
 import qualified Data.Map as Map
@@ -354,12 +354,18 @@
 instance CoArbitrary Time.AbsoluteTime where
     coarbitrary = coarbitrary . flip Time.diffAbsoluteTime Time.taiEpoch
 
--- WARNING: from base, should be moved to QC library
+-- Introduced in QC 2.5.0
+#if !(MIN_VERSION_QuickCheck(2,5,0))
 instance Arbitrary Ordering where
     arbitrary = arbitraryBoundedEnum
+    shrink GT = [EQ, LT]
+    shrink LT = [EQ]
+    shrink EQ = []
 
 instance CoArbitrary Ordering where
-    coarbitrary = coarbitraryEnum
+    coarbitrary GT = variant 1
+    coarbitrary EQ = variant 0
+    coarbitrary LT = variant (-1)
 
 instance Fixed.HasResolution a => Arbitrary (Fixed.Fixed a) where
     arbitrary = arbitrarySizedFractional
@@ -368,7 +374,6 @@
 instance Fixed.HasResolution a => CoArbitrary (Fixed.Fixed a) where
     coarbitrary = coarbitraryReal
 
--- WARNING: should be moved to QC library
 arbitraryBoundedEnum :: (Bounded a, Enum a) => Gen a
 arbitraryBoundedEnum =
   do let mn = minBound
@@ -378,3 +383,4 @@
 
 coarbitraryEnum :: Enum a => a -> Gen c -> Gen c
 coarbitraryEnum = variant . fromEnum
+#endif
