diff --git a/dequeue.cabal b/dequeue.cabal
--- a/dequeue.cabal
+++ b/dequeue.cabal
@@ -1,7 +1,7 @@
 Build-Type: Custom
 Name: dequeue
 Category: Data Structures
-Version: 0.1.2
+Version: 0.1.3
 Cabal-Version: >= 1.2
 Synopsis: A typeclass and an implementation for double-ended queues.
 Description:
@@ -14,9 +14,9 @@
 Author: Henry Bucklow
 Maintainer: Henry Bucklow <henry@elsie.org.uk>
 Tested-With: GHC==6.10
-Build-Depends: base, safe, QuickCheck
+Build-Depends: base <= 4.1, safe, QuickCheck
 Exposed-Modules: Data.Dequeue
 Hs-Source-Dirs: src
 Extra-Source-Files: src/Tests.hs
 GHC-Options: -Wall
-
+Extensions: CPP
diff --git a/src/Data/Dequeue.hs b/src/Data/Dequeue.hs
--- a/src/Data/Dequeue.hs
+++ b/src/Data/Dequeue.hs
@@ -45,8 +45,13 @@
 import Control.Monad
 import Data.Foldable
 import qualified Data.List as List
-import Test.QuickCheck hiding (check)
 
+import Test.QuickCheck
+#if MIN_VERSION_QuickCheck(2,0,0)
+#else
+   hiding (check)
+#endif
+
 import Safe
 
 -- | A typeclass for double-ended queues.
@@ -215,8 +220,12 @@
 
 instance (Arbitrary a) => Arbitrary (BankersDequeue a) where
     arbitrary = (liftM fromList) arbitrary
+
+#if MIN_VERSION_QuickCheck(2,0,0)
+#else
     coarbitrary (BankersDequeue _ front _ rear) =
         variant 0 . coarbitrary front . coarbitrary rear
+#endif
 
 instance Eq a => Eq (BankersDequeue a) where
     queue1 == queue2 = toList queue1 == toList queue2
