diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,10 @@
+### 1.5.0.1
+
+_Andreas Abel, 2022-03-14_
+
+- Repair build on Windows (regression in 1.5.0.0, [#59](https://github.com/haskell-hvr/missingh/issues/59)).
+- Tested with GHC 7.10 - 9.2.
+
 # 1.5.0.0
 
 _Andreas Abel, 2022-02-12_
diff --git a/MissingH.cabal b/MissingH.cabal
--- a/MissingH.cabal
+++ b/MissingH.cabal
@@ -1,6 +1,6 @@
 cabal-version: 1.12
 name: MissingH
-version: 1.5.0.0
+version: 1.5.0.1
 
 build-type: Simple
 license: BSD3
@@ -201,11 +201,6 @@
   -- additional testsuite-specific dependencies
   build-depends:
       HUnit                  == 1.6.*
-
-  if impl(ghc < 7.8)
-    -- really, we would like to test for base < 4.7
-    build-depends:
-      errorcall-eq-instance  == 0.3.*
 
   if impl(ghc >= 8)
     ghc-options:   -Wcompat
diff --git a/src/Network/Utils.hs b/src/Network/Utils.hs
--- a/src/Network/Utils.hs
+++ b/src/Network/Utils.hs
@@ -42,7 +42,7 @@
       socket,
       close,
       NameInfoFlag(NI_NUMERICHOST),
-      SockAddr(SockAddrInet, SockAddrUnix),
+      SockAddr(..),
       Socket,
       SocketType(Stream) )
 #if !(defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
diff --git a/src/System/Cmd/Utils.hs b/src/System/Cmd/Utils.hs
--- a/src/System/Cmd/Utils.hs
+++ b/src/System/Cmd/Utils.hs
@@ -95,7 +95,9 @@
 
 import System.Exit ( ExitCode(ExitFailure, ExitSuccess) )
 import System.Log.Logger ( debugM, warningM )
-#if !(defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
+#if (defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
+import System.Process (rawSystem)
+#else
 import System.Posix.IO
     ( closeFd,
       createPipe,
diff --git a/src/System/IO/HVFS.hs b/src/System/IO/HVFS.hs
--- a/src/System/IO/HVFS.hs
+++ b/src/System/IO/HVFS.hs
@@ -69,11 +69,12 @@
       GroupID,
       LinkCount,
       UserID,
+#if !(defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
       createLink,
       createSymbolicLink,
-      getFileStatus,
       getSymbolicLinkStatus,
       readSymbolicLink,
+#endif
       accessTime,
       deviceID,
       fileGroup,
@@ -81,6 +82,7 @@
       fileMode,
       fileOwner,
       fileSize,
+      getFileStatus,
       isBlockDevice,
       isCharacterDevice,
       isDirectory,
diff --git a/src/System/IO/StatCompat.hs b/src/System/IO/StatCompat.hs
--- a/src/System/IO/StatCompat.hs
+++ b/src/System/IO/StatCompat.hs
@@ -37,18 +37,20 @@
       EpochTime,
       FileID,
       FileMode,
-      FileOffset,
-      GroupID,
-      LinkCount,
-      UserID )
+      FileOffset )
+
 #if !(defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
-import           System.Posix.Files  (intersectFileModes)
-#endif
+import safe System.Posix.Types ( LinkCount, UserID, GroupID )
+import safe System.Posix.Files ( intersectFileModes )
+#else
+import safe Data.Bits          ( (.&.) )
 
-#if (defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
 type LinkCount = Int
 type UserID = Int
 type GroupID = Int
+
+intersectFileModes :: FileMode -> FileMode -> FileMode
+intersectFileModes m1 m2 = m1 .&. m2
 #endif
 
 data FileStatusCompat =
@@ -77,8 +79,3 @@
 isDirectory = sc_helper directoryMode
 isSymbolicLink = sc_helper symbolicLinkMode
 isSocket = sc_helper socketMode
-
-#if (defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
-intersectFileModes :: FileMode -> FileMode -> FileMode
-intersectFileModes m1 m2 = m1 .&. m2
-#endif
diff --git a/src/System/Path.hs b/src/System/Path.hs
--- a/src/System/Path.hs
+++ b/src/System/Path.hs
@@ -35,13 +35,14 @@
 #if !(defined(mingw32_HOST_OS) || defined(mingw32_TARGET_OS) || defined(__MINGW32__))
 import safe System.Directory
     ( getCurrentDirectory, removeFile, setCurrentDirectory )
-import           System.Posix.Directory (createDirectory)
+import safe System.Posix.Directory ( createDirectory )
 import safe System.Posix.Temp ( mkstemp )
 #else
-import           System.Directory
+import safe System.Directory
+import safe System.IO ( openTempFile )
 #endif
 import safe Control.Exception ( finally )
-import           System.FilePath        (pathSeparator)
+import safe System.FilePath ( pathSeparator )
 import safe System.IO ( hClose )
 import safe System.IO.HVFS.Utils
     ( SystemFS(SystemFS), recurseDir, recurseDirStat, recursiveRemove )
