diff --git a/Data/Array/Repa/IO/BMP.hs b/Data/Array/Repa/IO/BMP.hs
--- a/Data/Array/Repa/IO/BMP.hs
+++ b/Data/Array/Repa/IO/BMP.hs
@@ -6,6 +6,7 @@
         , writeImageToBMP)
 where
 import Data.Array.Repa				as R
+import Data.Array.Repa.Unsafe                   as R
 import Data.Array.Repa.Repr.ForeignPtr		as R
 import Data.Array.Repa.Repr.ByteString		as R
 import Data.Vector.Unboxed                      as U
@@ -47,16 +48,16 @@
 
         -- Read out the components into their own arrays, 
         -- skipping the alpha channel.
-	vecRed         <- now $ computeP 
-                        $ traverse arr shapeFn
+	vecRed         <- computeP 
+                        $ unsafeTraverse arr shapeFn
                 	       (\get (sh :. x) -> get (sh :. (x * 4)))
 
-	vecGreen       <- now $ computeP 
-                        $ traverse arr shapeFn
+	vecGreen       <- computeP 
+                        $ unsafeTraverse arr shapeFn
                 		(\get (sh :. x) -> get (sh :. (x * 4 + 1)))
 
-	vecBlue        <- now $ computeP
-                        $ traverse arr shapeFn
+	vecBlue        <- computeP
+                        $ unsafeTraverse arr shapeFn
                 		(\get (sh :. x) -> get (sh :. (x * 4 + 2)))
 
 	-- O(1). zip the components together
diff --git a/repa-io.cabal b/repa-io.cabal
--- a/repa-io.cabal
+++ b/repa-io.cabal
@@ -1,5 +1,5 @@
 Name:                repa-io
-Version:             3.0.0.1
+Version:             3.1.0.1
 License:             BSD3
 License-file:        LICENSE
 Author:              The DPH Team
@@ -19,7 +19,7 @@
 Library
   Build-Depends: 
         base                 == 4.5.*,
-        repa                 == 3.0.*,
+        repa                 == 3.1.*,
         bmp                  == 1.2.*,
         old-time             == 1.1.*,
         vector               == 0.9.*,
