diff --git a/bin/alloy/RunAlloy.class b/bin/alloy/RunAlloy.class
Binary files a/bin/alloy/RunAlloy.class and b/bin/alloy/RunAlloy.class differ
diff --git a/call-alloy.cabal b/call-alloy.cabal
--- a/call-alloy.cabal
+++ b/call-alloy.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 5f40f17f800e12b3cb98ac3b1383ac04a52cd1570b5329b12f3fffb03bdf46ab
+-- hash: 0534c64ea3ef38876fc7fc965609f9d06865cdfa4b66fb3c23a3d01805827ce3
 
 name:           call-alloy
-version:        0.2.0.3
+version:        0.2.0.4
 synopsis:       A simple library to call Alloy given a specification
 description:    Please see the README on GitHub at <https://github.com/marcellussiegburg/call-alloy#readme>
 category:       Language
diff --git a/src/Language/Alloy/Call.hs b/src/Language/Alloy/Call.hs
--- a/src/Language/Alloy/Call.hs
+++ b/src/Language/Alloy/Call.hs
@@ -97,7 +97,9 @@
       }
   pout <- listenForOutput hout
   perr <- listenForOutput herr
+#ifndef mingw32_HOST_OS
   hSetBuffering hin NoBuffering
+#endif
   hPutStr hin content
   hFlush hin
   hClose hin
@@ -118,7 +120,7 @@
     printContentOnError ph = do
       code <- waitForProcess ph
       unless (code == ExitSuccess)
-        $ fail $ "Failed parsing the Alloy code:\n" <> content
+        $ putStrLn $ "Failed parsing the Alloy code:\n" <> content
     listenForOutput h = do
       mvar <- newEmptyMVar
       pid <- forkIO $ getWholeOutput h >>= putMVar mvar
@@ -244,7 +246,9 @@
   unless (isDir || parent == fp) $ do
     createUserDirectoriesIfMissing parent
     createDirectory fp
+#ifndef mingw32_HOST_OS
     setFileMode fp (7*8*8)
+#endif
 
 {-|
 Check if there exists a model for the given specification. This function calls
