diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## Zip 0.1.5
+
+* Switched to using `withBinaryFile` instead of `withFile`, because the
+  latter does nasty conversions on Windows, see docs for `openBinaryFile`.
+
 ## Zip 0.1.4
 
 * Added several simple code examples in `Codec.Archive.Zip`.
diff --git a/Codec/Archive/Zip/Internal.hs b/Codec/Archive/Zip/Internal.hs
--- a/Codec/Archive/Zip/Internal.hs
+++ b/Codec/Archive/Zip/Internal.hs
@@ -187,7 +187,7 @@
 scanArchive
   :: Path Abs File     -- ^ Path to archive to scan
   -> IO (ArchiveDescription, Map EntrySelector EntryDescription)
-scanArchive path = withFile (toFilePath path) ReadMode $ \h -> do
+scanArchive path = withBinaryFile (toFilePath path) ReadMode $ \h -> do
   mecdOffset <- locateECD path h
   case mecdOffset of
     Just ecdOffset -> do
@@ -248,7 +248,7 @@
     let (ProducingActions coping sinking, editing) =
           optimize (toRecreatingActions path entries >< xs)
         comment = predictComment adComment xs
-    withFile (toFilePath temp) WriteMode $ \h -> do
+    withBinaryFile (toFilePath temp) WriteMode $ \h -> do
       copiedCD <- M.unions <$> forM (M.keys coping) (\srcPath ->
         copyEntries h srcPath (coping ! srcPath) editing)
       let sinkingKeys = M.keys $ sinking `M.difference` copiedCD
diff --git a/zip.cabal b/zip.cabal
--- a/zip.cabal
+++ b/zip.cabal
@@ -31,7 +31,7 @@
 -- POSSIBILITY OF SUCH DAMAGE.
 
 name:                 zip
-version:              0.1.4
+version:              0.1.5
 cabal-version:        >= 1.10
 license:              BSD3
 license-file:         LICENSE.md
@@ -106,7 +106,7 @@
                     , text             >= 0.2     && < 1.3
                     , time             >= 1.4     && < 1.7
                     , transformers     >= 0.4     && < 0.6
-                    , zip              >= 0.1.4
+                    , zip              >= 0.1.5
   default-language:   Haskell2010
 
 benchmark bench
@@ -119,7 +119,7 @@
     ghc-options:      -O2 -Wall
   build-depends:      base             >= 4.8     && < 5.0
                     , criterion        >= 0.6.2   && < 1.2
-                    , zip              >= 0.1.4
+                    , zip              >= 0.1.5
   default-language:   Haskell2010
 
 source-repository head
