diff --git a/ghc/compiler/utils/Util.lhs b/ghc/compiler/utils/Util.lhs
index 471089d75e8decfff2eced62238e9c2068bdebaf..3a0da471d414d27e9b1546e1c73f51588c4fe301 100644
--- a/ghc/compiler/utils/Util.lhs
+++ b/ghc/compiler/utils/Util.lhs
@@ -73,6 +73,9 @@ import FastTypes
 #if __GLASGOW_HASKELL__ <= 408
 import Exception	( catchIO, justIoErrors, raiseInThread )
 #endif
+#ifndef mingw32_TARGET_OS
+import Posix
+#endif
 infixr 9 `thenCmp`
 \end{code}
 
@@ -727,7 +730,6 @@ throwTo   = raiseInThread
 foreign import "_getpid" myGetProcessID :: IO Int 
 #else
 myGetProcessID :: IO Int
-myGetProcessID = do hPutStrLn stderr "Warning:faking process ID in myGetProcessID"
-                    return 12345
+myGetProcessID = Posix.getProcessID
 #endif
 \end{code}