diff --git a/System/Random/Mersenne/Pure64.hs b/System/Random/Mersenne/Pure64.hs
--- a/System/Random/Mersenne/Pure64.hs
+++ b/System/Random/Mersenne/Pure64.hs
@@ -48,19 +48,27 @@
 import System.Random
 import Data.Word
 import Data.Int
-import System.Time
+import Data.Time.Clock
+import Data.Time.Calendar
 import System.CPUTime
 
 -- | Create a PureMT generator from a 'Word64' seed.
 pureMT :: Word64 -> PureMT
 pureMT = mkPureMT . seedBlock . fromIntegral
 
+#if !MIN_VERSION_time(1,6,0)
+diffTimeToPicoseconds :: DiffTime -> Integer
+diffTimeToPicoseconds d =
+    round (1000 * 1000 * 1000 * 1000 * d)
+#endif
+
 -- | Create a new PureMT generator, using the clocktime as the base for the seed.
 newPureMT :: IO PureMT
 newPureMT = do
-    ct             <- getCPUTime
-    (TOD sec psec) <- getClockTime
-    return $ pureMT (fromIntegral $ sec * 1013904242 + psec + ct)
+    ct <- getCPUTime
+    t  <- getCurrentTime
+    let seed = toModifiedJulianDay (utctDay t) + diffTimeToPicoseconds (utctDayTime t) + ct
+    return $ pureMT $ fromIntegral seed
 
 ------------------------------------------------------------------------
 -- System.Random interface.
diff --git a/mersenne-random-pure64.cabal b/mersenne-random-pure64.cabal
--- a/mersenne-random-pure64.cabal
+++ b/mersenne-random-pure64.cabal
@@ -1,5 +1,5 @@
 name:            mersenne-random-pure64
-version:         0.2.0.5
+version:         0.2.2.0
 homepage:        http://code.haskell.org/~dons/code/mersenne-random-pure64/
 synopsis:        Generate high quality pseudorandom numbers purely using a Mersenne Twister
 description:
@@ -26,7 +26,7 @@
 maintainer:      Don Stewart <dons00@gmail.com>
 cabal-version:   >= 1.6.0
 build-type:      Simple
-tested-with:     GHC == 7.6.2, GHC == 7.7
+tested-with:     GHC == 7.6.2, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
 
 source-repository head
   type: git
@@ -46,7 +46,7 @@
     if flag(small_base)
         build-depends: base  < 3
     else
-        build-depends: base >= 3 && < 6, old-time, random
+        build-depends: base >= 3 && < 6, time, random
 
     cc-options:
         -O3 -finline-functions -fomit-frame-pointer
