diff --git a/.gitignore b/.gitignore
index 5d82bc960df488a8abc977ec4e0163d25d862583..5410ef42d9f602398c0c2faeb1c657db9195935e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,3 +21,5 @@ TAGS
 
 .cabal-sandbox
 cabal.sandbox.config
+
+.stack-work/
diff --git a/haddock-test/haddock-test.cabal b/haddock-test/haddock-test.cabal
index ef928e782578e829661b497b019f5f09d06a138c..56dd184557ec9d105779b8336b6276e1cb1b4f83 100644
--- a/haddock-test/haddock-test.cabal
+++ b/haddock-test/haddock-test.cabal
@@ -21,8 +21,8 @@ library
   exposed-modules:
     Test.Haddock
     Test.Haddock.Config
+    Test.Haddock.Utils
     Test.Haddock.Xhtml
 
   other-modules:
     Test.Haddock.Process
-    Test.Haddock.Utils
diff --git a/haddock-test/src/Test/Haddock/Config.hs b/haddock-test/src/Test/Haddock/Config.hs
index 50616c7f292f963c21a461af603b6b55a390c8da..988636e419bcf14487aa3003b0b4fcce0da96087 100644
--- a/haddock-test/src/Test/Haddock/Config.hs
+++ b/haddock-test/src/Test/Haddock/Config.hs
@@ -193,7 +193,7 @@ loadConfig ccfg dcfg flags files = do
         , baseDependencies ghcPath
         ]
 
-    let cfgHaddockStdOut = fromMaybe "/dev/null" (flagsHaddockStdOut flags)
+    let cfgHaddockStdOut = fromMaybe defaultStdOut (flagsHaddockStdOut flags)
 
     cfgDiffTool <- if FlagNoDiff `elem` flags
         then pure Nothing
@@ -256,6 +256,14 @@ defaultDiffTool =
     isAvailable = liftM isJust . findProgramLocation silent
 
 
+defaultStdOut :: FilePath
+#ifdef mingw32_HOST_OS
+defaultStdOut = "nul"
+#else
+defaultStdOut = "/dev/null"
+#endif
+
+
 processFileArgs :: DirConfig -> [String] -> IO [TestPackage]
 processFileArgs dcfg [] =
     processFileArgs' dcfg . filter isValidEntry =<< getDirectoryContents srcDir
diff --git a/haddock-test/src/Test/Haddock/Utils.hs b/haddock-test/src/Test/Haddock/Utils.hs
index a947fea101cb0308514199f816ba26ab10506c35..58408aaf16545acdf2666953f49d0bd9315fab64 100644
--- a/haddock-test/src/Test/Haddock/Utils.hs
+++ b/haddock-test/src/Test/Haddock/Utils.hs
@@ -48,3 +48,10 @@ copyFile' :: FilePath -> FilePath -> IO ()
 copyFile' old new = do
     createDirectoryIfMissing True $ takeDirectory new
     copyFile old new
+
+
+crlfToLf :: String -> String
+crlfToLf "" = ""
+crlfToLf ('\r' : '\n' : rest) = '\n' : crlfToLf rest
+crlfToLf ('\r' : rest)  = '\n' : crlfToLf rest
+crlfToLf (other : rest) = other : crlfToLf rest
diff --git a/hoogle-test/Main.hs b/hoogle-test/Main.hs
index 59a98fd0edb426148a96617567d7ff63e79542fc..d19ae585daed7dd7c8c1579d970919527e0afc0f 100644
--- a/hoogle-test/Main.hs
+++ b/hoogle-test/Main.hs
@@ -1,10 +1,12 @@
 {-# LANGUAGE CPP #-}
 
 
+import Data.Function
 import System.Environment
 import System.FilePath
 
 import Test.Haddock
+import Test.Haddock.Utils
 
 
 checkConfig :: CheckConfig String
@@ -12,7 +14,7 @@ checkConfig = CheckConfig
     { ccfgRead = Just
     , ccfgClean = \_ -> id
     , ccfgDump = id
-    , ccfgEqual = (==)
+    , ccfgEqual = (==) `on` crlfToLf
     }
 
 
diff --git a/latex-test/Main.hs b/latex-test/Main.hs
index 5989410ba6ee4cfc22af9e6d157cb83b73716c8d..8d2a4922e532bf88798fa31654a72160206626bb 100755
--- a/latex-test/Main.hs
+++ b/latex-test/Main.hs
@@ -1,10 +1,12 @@
 {-# LANGUAGE CPP #-}
 
 
+import Data.Function
 import System.Environment
 import System.FilePath
 
 import Test.Haddock
+import Test.Haddock.Utils
 
 
 checkConfig :: CheckConfig String
@@ -12,7 +14,7 @@ checkConfig = CheckConfig
     { ccfgRead = Just
     , ccfgClean = \_ -> id
     , ccfgDump = id
-    , ccfgEqual = (==)
+    , ccfgEqual = (==) `on` crlfToLf
     }