diff --git a/System/Random.hs b/System/Random.hs
--- a/System/Random.hs
+++ b/System/Random.hs
@@ -75,7 +75,8 @@
 import Foreign.C	( CTime, CUInt )
 #else
 import System.CPUTime	( getCPUTime )
-import System.Time	( getClockTime, ClockTime(..) )
+import Data.Time	( getCurrentTime, UTCTime(..) )
+import Data.Ratio       ( numerator, denominator )
 #endif
 import Data.Char	( isSpace, chr, ord )
 import System.IO.Unsafe ( unsafePerformIO )
@@ -86,10 +87,15 @@
 -- the extended one expected in this module, so we lash-up a quick
 -- replacement here.
 #ifdef __NHC__
-data ClockTime = TOD Integer Integer
 foreign import ccall "time.h time" readtime :: Ptr CTime -> IO CTime
-getClockTime :: IO ClockTime
-getClockTime = do CTime t <- readtime nullPtr;  return (TOD (toInteger t) 0)
+getTime :: IO (Integer, Integer)
+getTime = do CTime t <- readtime nullPtr;  return (toInteger t, 0)
+#else
+getTime :: IO (Integer, Integer)
+getTime = do
+  utc <- getCurrentTime
+  let daytime = toRational $ utctDayTime utc
+  return $ quotRem (numerator daytime) (denominator daytime)
 #endif
 
 -- | The class 'RandomGen' provides a common interface to random number
@@ -277,12 +283,14 @@
 
 instance Random Bool where
   randomR (a,b) g = 
-      case (randomIvalInteger (toInteger (bool2Int a), toInteger (bool2Int b)) g) of
+      case (randomIvalInteger (bool2Int a, bool2Int b) g) of
         (x, g') -> (int2Bool x, g')
        where
+         bool2Int :: Bool -> Integer
          bool2Int False = 0
          bool2Int True  = 1
 
+	 int2Bool :: Int -> Bool
 	 int2Bool 0	= False
 	 int2Bool _	= True
 
@@ -304,7 +312,7 @@
 mkStdRNG :: Integer -> IO StdGen
 mkStdRNG o = do
     ct          <- getCPUTime
-    (TOD sec psec) <- getClockTime
+    (sec, psec) <- getTime
     return (createStdGen (sec * 12345 + psec + ct + o))
 
 randomIvalInteger :: (RandomGen g, Num a) => (Integer, Integer) -> g -> (a, g)
diff --git a/random.cabal b/random.cabal
--- a/random.cabal
+++ b/random.cabal
@@ -1,15 +1,23 @@
 name:		random
-version:	1.0.0.1
+version:	1.0.0.2
 license:	BSD3
 license-file:	LICENSE
 maintainer:	libraries@haskell.org
+bug-reports: http://hackage.haskell.org/trac/ghc/newticket?component=libraries/random
 synopsis:	random number library
 category:       System
 description:
 	This package provides a random number library.
 build-type: Simple
-exposed-modules:
-	System.Random
-extensions:	CPP
-build-depends: base, old-time
+Cabal-Version: >= 1.6
+
+Library
+    exposed-modules:
+        System.Random
+    extensions:	CPP
+    build-depends: base >= 3 && < 5, time
+
+source-repository head
+    type:     darcs
+    location: http://darcs.haskell.org/packages/random
 
