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,7 +48,8 @@
 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.
@@ -58,9 +59,10 @@
 -- | 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.1.0
 homepage:        http://code.haskell.org/~dons/code/mersenne-random-pure64/
 synopsis:        Generate high quality pseudorandom numbers purely using a Mersenne Twister
 description:
@@ -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
