diff --git a/RSA.cabal b/RSA.cabal
--- a/RSA.cabal
+++ b/RSA.cabal
@@ -1,6 +1,6 @@
 name:       RSA
 category:   Cryptography, Codec
-version:    1.0.6
+version:    1.0.6.1
 license:    BSD3
 license-file: LICENSE
 author:     Adam Wick <awick@galois.com>
@@ -35,6 +35,10 @@
   Description: Whether or not to use base 3 (default: no)
   Default: False
 
+Flag HasArbitraryWord8
+  Description: Whether or not Arbitrary Word8 is defined by QuickCheck
+  Default: False
+
 Library
  build-depends: bytestring, random
  GHC-Options: -O2 -Wall -fno-ignore-asserts -fno-warn-orphans
@@ -67,7 +71,12 @@
       build-depends: QuickCheck < 2, test-framework-quickcheck >= 0.2.6 && < 0.3
       CPP-Options:   -DQUICKCHECK1
     else
-      build-depends: QuickCheck >= 2 && < 3, test-framework-quickcheck2 >= 0.2.7 && < 0.3
+      build-depends: test-framework-quickcheck2 >= 0.2.7 && < 0.3
+      if flag(HasArbitraryWord8)
+        build-depends: QuickCheck >= 2.1.2 && < 3
+        CPP-Options: -DQUICKCHECK_DEFINES_ARBITRARY_WORD8
+      else
+        build-depends: QuickCheck >= 2 && < 2.1.2
   GHC-Options: -O2 -Wall -fno-ignore-asserts -fno-warn-orphans 
   CPP-Options: -DRSA_TEST
   Main-Is: Test.hs
diff --git a/Test.hs b/Test.hs
--- a/Test.hs
+++ b/Test.hs
@@ -80,10 +80,12 @@
 instance Show NonEmptyByteString where
   show (NEBS x) = show x
 
+#ifndef QUICKCHECK_DEFINES_ARBITRARY_WORD8
 instance Arbitrary Word8 where
   arbitrary   = fromIntegral `fmap` (arbitrary::(Gen Int))
-#ifdef QUICKCHECK1
+# ifdef QUICKCHECK1
   coarbitrary = undefined
+# endif
 #endif
 
 instance Arbitrary ByteString where
