-#ifdef mingw32_HOST_OS
-
-import qualified System.Win32.Process as P (getCurrentProcessId)
-getProcessID :: IO Int
-getProcessID = fromIntegral <$> P.getCurrentProcessId
+#if MIN_VERSION_process(1,6,3)
+import System.Process hiding (getPid)
+import qualified System.Process (getPid)
+#else
+import System.Process
+import System.Process.Internals
+import Control.Concurrent.MVar
+#endif