Hi, copyFile on Windows with a binary file doesn't work terribly well - it truncates at the first binary zero. The code goes: copyFile :: FilePath -> FilePath -> IO () copyFile fromFPath toFPath = do readFile fromFPath >>= writeFile toFPath try (copyPermissions fromFPath toFPath) return () That should be openFileBinary etc. Thanks Neil