diff --git a/Data/Stream.hs b/Data/Stream.hs
--- a/Data/Stream.hs
+++ b/Data/Stream.hs
@@ -68,13 +68,13 @@
 import Control.Monad (liftM2)
 import Data.Monoid (mappend)
 import Data.Char (isSpace)
-import Test.QuickCheck (Arbitrary, arbitrary, coarbitrary)
+import Test.QuickCheck (Arbitrary, CoArbitrary, arbitrary, coarbitrary)
 import Test.LazySmallCheck (Serial, series, cons2)
 
 -- | An infinite sequence.
 --
 -- /Beware/: If you use any function from the @ Eq @ or @ Ord @
--- class two compare to equal streams, these functions will diverge.
+-- class to compare two equal streams, these functions will diverge.
 
 data Stream a = Cons a (Stream a) deriving (Eq, Ord)
 
@@ -96,6 +96,8 @@
 
 instance Arbitrary a => Arbitrary (Stream a) where
   arbitrary = liftM2 Cons arbitrary arbitrary
+
+instance CoArbitrary a => CoArbitrary (Stream a) where
   coarbitrary xs gen = do
     n <- arbitrary
     coarbitrary (take (abs n) xs) gen
diff --git a/Stream.cabal b/Stream.cabal
--- a/Stream.cabal
+++ b/Stream.cabal
@@ -1,5 +1,5 @@
 Name:                   Stream
-Version:                0.3
+Version:                0.3.1
 License:                BSD3
 License-file:           LICENSE
 Author:                 Wouter Swierstra <wss@cs.nott.ac.uk>,
@@ -17,7 +17,7 @@
 			nothing to do with the work on /Stream Fusion/ by 
 			Duncan Coutts, Roman Leshchinskiy, and Don Stewart.
 Category:               Data
-Build-Depends:          base, QuickCheck < 2, lazysmallcheck >= 0.3
+Build-Depends:          base, QuickCheck >= 2.0, lazysmallcheck >= 0.3
 Build-Type:		Simple
 Exposed-modules:        Data.Stream
 
