diff --git a/ghc/lib/required/Time.lhs b/ghc/lib/required/Time.lhs
index 266fad5c47e81cda8fc312db2550962fdb576061..0af39f7da5b6198e6ff5ec55109f8aa1083889c1 100644
--- a/ghc/lib/required/Time.lhs
+++ b/ghc/lib/required/Time.lhs
@@ -190,7 +190,7 @@ addToClockTime  :: TimeDiff  -> ClockTime -> ClockTime
 addToClockTime (TimeDiff year mon day hour min sec psec) 
 	       (TOD c_sec c_psec) = unsafePerformPrimIO $
     allocWords (``sizeof(time_t)'') >>= \ res ->
-    _ccall_ toClockSec year mon day hour min sec 1 res 
+    _ccall_ toClockSec year mon day hour min sec 0 res 
 				    >>= \ ptr@(A# ptr#) ->
     if ptr /= ``NULL'' then
        let
@@ -282,13 +282,15 @@ toClockTime (CalendarTime year mon mday hour min sec psec wday yday tzname tz is
     else
         unsafePerformPrimIO (
 	    allocWords (``sizeof(time_t)'') >>= \ res ->
-	    _ccall_ toClockSec year mon mday hour min sec tz res
+	    _ccall_ toClockSec year mon mday hour min sec isDst res
 						    >>= \ ptr@(A# ptr#) ->
             if ptr /= ``NULL'' then
 		returnPrimIO (TOD (int2Integer# (indexIntOffAddr# ptr# 0#)) psec)
 	    else
 		error "Time.toClockTime: can't perform conversion"
         )
+    where
+     isDst = if isdst then (1::Int) else 0
 
 bottom :: (Int,Int)
 bottom = error "Time.bottom"