diff --git a/Setup.lhs b/Setup.lhs
--- a/Setup.lhs
+++ b/Setup.lhs
@@ -1,26 +1,4 @@
-> import Distribution.PackageDescription (PackageDescription(buildDepends))
-> import Distribution.Setup (ConfigFlags)
-> import Distribution.Simple (UserHooks(confHook),
->                             defaultMainWithHooks, defaultUserHooks, 
->                             Dependency(..), VersionRange(..))
-> import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)
-> import qualified System.Info (os)
+> import Distribution.Simple
 
 > main :: IO ()
-> main = defaultMainWithHooks myHooks
-
-> myHooks :: UserHooks
-> myHooks = addOptionalUnixDependencyHook defaultUserHooks
-
-> addOptionalUnixDependencyHook :: UserHooks -> UserHooks
-> addOptionalUnixDependencyHook hooks = 
->    hooks { confHook = confHook hooks . addOptionalUnixDependency }
-
-> addOptionalUnixDependency :: PackageDescription -> PackageDescription
-> addOptionalUnixDependency desc = 
->   case System.Info.os of
->      "mingw32" -> desc
->      _         -> addDependency (Dependency "unix" AnyVersion) desc
-
-> addDependency :: Dependency -> PackageDescription -> PackageDescription
-> addDependency dep desc = desc { buildDepends = dep : buildDepends desc}
+> main = defaultMain
diff --git a/System/PosixCompat/User.hsc b/System/PosixCompat/User.hsc
--- a/System/PosixCompat/User.hsc
+++ b/System/PosixCompat/User.hsc
@@ -42,6 +42,14 @@
 
 #if UNIX_IMPL
 
+#if __GLASGOW_HASKELL__<605
+getAllGroupEntries :: IO [GroupEntry]
+getAllGroupEntries = return []
+
+getAllUserEntries :: IO [UserEntry]
+getAllUserEntries = return []
+#endif
+
 #else /* Portable implementation */
 
 unsupported :: String -> IO a
diff --git a/unix-compat.cabal b/unix-compat.cabal
--- a/unix-compat.cabal
+++ b/unix-compat.cabal
@@ -1,5 +1,7 @@
 Name: unix-compat
-Version: 0.1
+Version: 0.1.1
+Cabal-version: >= 1.2
+Build-type: Simple
 License: BSD4
 License-file: LICENSE
 Maintainer: bjorn@bringert.net
@@ -9,15 +11,20 @@
   of the unix package. This package re-exports the unix 
   package when available. When it isn't available,
   portable implementations are used.
-Exposed-modules:
-  System.PosixCompat.Extensions
-  System.PosixCompat.Files
-  System.PosixCompat.User
--- Also depends on the unix package on POSIX platforms, added by Setup.lhs.
-Build-depends: base
-Extensions: CPP, ForeignFunctionInterface
-Include-dirs: include
-Install-includes: HsUnixCompat.h
-C-sources: cbits/HsUnixCompat.c
 Extra-source-files: include/HsUnixCompat.h
-GHC-Options: -O -Wall
+
+Library
+  Exposed-modules:
+    System.PosixCompat.Extensions
+    System.PosixCompat.Files
+    System.PosixCompat.User
+  Extensions: CPP, ForeignFunctionInterface
+  Include-dirs: include
+  Includes: HsUnixCompat.h
+  Install-includes: HsUnixCompat.h
+  C-sources: cbits/HsUnixCompat.c
+  GHC-Options: -Wall
+  Build-depends: base
+
+  if !os(mingw32)
+    Build-depends: unix
