diff --git a/Data/Stream.hs b/Data/Stream.hs
--- a/Data/Stream.hs
+++ b/Data/Stream.hs
@@ -174,7 +174,7 @@
 
 -- | @scan'@ is a strict scan.
 scan' :: (a -> b -> a) -> a -> Stream b -> Stream a
-scan' f z (Cons x xs) =  z <:> (scan' f $! (f z x)) xs
+scan' f z xs =  z <:> (scan' f $! (f z (head xs))) (tail xs)
 
 -- | 'scan1' is a variant of 'scan' that has no starting value argument:
 --
diff --git a/Stream.cabal b/Stream.cabal
--- a/Stream.cabal
+++ b/Stream.cabal
@@ -1,5 +1,5 @@
 Name:                   Stream
-Version:                0.3.1
+Version:                0.3.2
 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.0, lazysmallcheck >= 0.3
+Build-Depends:          base < 4, QuickCheck >= 2.0, lazysmallcheck >= 0.3
 Build-Type:		Simple
 Exposed-modules:        Data.Stream
 
