diff --git a/src/System/PosixCompat/Files.hsc b/src/System/PosixCompat/Files.hsc
--- a/src/System/PosixCompat/Files.hsc
+++ b/src/System/PosixCompat/Files.hsc
@@ -119,6 +119,8 @@
 import Control.Exception (bracket)
 import Control.Monad (liftM, liftM2)
 import Data.Bits ((.|.), (.&.))
+import Data.Int (Int64)
+import Foreign.C.Types (CTime(..))
 import Prelude hiding (read)
 import System.Directory (Permissions, emptyPermissions)
 import System.Directory (getPermissions, setPermissions)
@@ -132,6 +134,7 @@
 import System.IO.Error
 import System.PosixCompat.Types
 import System.Win32.File hiding (getFileType)
+import System.Win32.Time (FILETIME(..), getFileTime, setFileTime)
 
 import System.PosixCompat.Internal.Time (
       getClockTime, clockTimeToEpochTime
@@ -409,7 +412,28 @@
 -- utime()
 
 setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO ()
-setFileTimes _ _ _ = unsupported "setFileTimes"
+setFileTimes file atime mtime =
+  bracket openFileHandle closeHandle $ \handle -> do
+    (creationTime, _, _) <- getFileTime handle
+    setFileTime
+      handle
+      creationTime
+      (epochTimeToFileTime atime)
+      (epochTimeToFileTime mtime)
+  where
+    openFileHandle = createFile file
+                       gENERIC_WRITE
+                       fILE_SHARE_NONE
+                       Nothing
+                       oPEN_EXISTING
+                       fILE_ATTRIBUTE_NORMAL
+                       Nothing
+
+    -- based on https://support.microsoft.com/en-us/kb/167296
+    epochTimeToFileTime (CTime t) = FILETIME (fromIntegral ll)
+      where
+        ll :: Int64
+        ll = t * 10000000 + 116444736000000000
 
 touchFile :: FilePath -> IO ()
 touchFile name =
diff --git a/unix-compat.cabal b/unix-compat.cabal
--- a/unix-compat.cabal
+++ b/unix-compat.cabal
@@ -1,5 +1,5 @@
 name:           unix-compat
-version:        0.4.2.0
+version:        0.4.3.0
 synopsis:       Portable POSIX-compatibility layer.
 description:    This package provides portable implementations of parts
                 of the unix package. This package re-exports the unix
