diff --git a/Codec/Compression/Zlib/Stream.hsc b/Codec/Compression/Zlib/Stream.hsc
--- a/Codec/Compression/Zlib/Stream.hsc
+++ b/Codec/Compression/Zlib/Stream.hsc
@@ -247,13 +247,13 @@
 run :: Stream a -> a
 run (Z m) = unsafePerformIO $ do
   ptr <- mallocBytes (#{const sizeof(z_stream)})
-  #{poke z_stream, next_in}   ptr nullPtr
-  #{poke z_stream, avail_in}  ptr (0 :: CUInt)
-  #{poke z_stream, next_out}  ptr nullPtr
-  #{poke z_stream, avail_out} ptr (0 :: CUInt)
   #{poke z_stream, zalloc}    ptr nullPtr
   #{poke z_stream, zfree}     ptr nullPtr
   #{poke z_stream, opaque}    ptr nullPtr
+  #{poke z_stream, next_in}   ptr nullPtr
+  #{poke z_stream, next_out}  ptr nullPtr
+  #{poke z_stream, avail_in}  ptr (0 :: CUInt)
+  #{poke z_stream, avail_out} ptr (0 :: CUInt)
   stream <- newForeignPtr_ ptr
   (_,_,_,_,a) <- m stream nullForeignPtr nullForeignPtr 0 0
   return a
diff --git a/zlib.cabal b/zlib.cabal
--- a/zlib.cabal
+++ b/zlib.cabal
@@ -1,17 +1,17 @@
-name: zlib
-version: 0.2
-copyright: (c) 2006 Duncan Coutts
-build-depends: base, fps
-license: BSD3
-author: Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
-maintainer: Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
+name:           zlib
+version:        0.3
+copyright:      (c) 2006 Duncan Coutts
+build-depends:  base
+license:        BSD3
+author:         Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
+maintainer:     Duncan Coutts <duncan.coutts@worc.ox.ac.uk>
 synopsis: Compression and decompression in the gzip and zlib formats
 exposed-modules: Codec.Compression.GZip,
                  Codec.Compression.Zlib,
                  Codec.Compression.Zlib.Raw,
                  Codec.Compression.Zlib.Internal
-other-modules: Codec.Compression.Zlib.Stream
-extensions: ForeignFunctionInterface
-includes: zlib.h
+other-modules:  Codec.Compression.Zlib.Stream
+extensions:     ForeignFunctionInterface
+includes:       zlib.h
 extra-libraries: z
-ghc-options: -fvia-C -Wall
+ghc-options: -O -fvia-C -Wall
