diff --git a/JavaScriptCore/kjs/DateMath.cpp b/JavaScriptCore/kjs/DateMath.cpp
index c7ebca6..7a92a1e 100644
--- a/JavaScriptCore/kjs/DateMath.cpp
+++ b/JavaScriptCore/kjs/DateMath.cpp
@@ -49,13 +49,10 @@
 
 /* Constants */
 
-static const double secondsPerHour = 60.0 * 60.0;
 static const double minutesPerDay = 24.0 * 60.0;
 static const double secondsPerDay = 24.0 * 60.0 * 60.0;
 static const double secondsPerYear = 24.0 * 60.0 * 60.0 * 365.0;
 
-
-static const double usecPerMsec = 1000.0;
 static const double usecPerSec = 1000000.0;
 
 static const double maxUnixTime = 2145859200.0; /*equivalent to 12/31/2037 */
@@ -348,7 +345,7 @@
     else if(localTimeSeconds < 0) // Go ahead a day to make localtime work (does not work with 0)
         localTimeSeconds += secondsPerDay;
 
-    double offsetTime = (localTimeSeconds * usecPerMsec) + getUTCOffset() ;
+    double offsetTime = (localTimeSeconds * msPerSecond) + getUTCOffset() ;
 
     // Offset from UTC but doesn't include DST obviously
     int offsetHour =  msToHours(offsetTime);
@@ -369,7 +366,7 @@
     if(diff < 0)
         diff += secondsPerDay;
 
-    return (diff * usecPerMsec);
+    return (diff * msPerSecond);
 }
 
 // Get the DST offset the time passed in
@@ -389,7 +386,7 @@
         ms = (day * msPerDay) + msToMilliseconds(ms);
     }
 
-    return getDSTOffsetSimple(ms / usecPerMsec);
+    return getDSTOffsetSimple(ms / msPerSecond);
 }
 
 double gregorianDateTimeToMS(const GregorianDateTime& t, double milliSeconds, bool inputIsUTC)
@@ -427,7 +424,7 @@
     tm.year     =  msToYear(ms) - 1900;
     tm.isDST =  dstOff != 0.0;
 
-    tm.utcOffset = static_cast<long>((dstOff + getUTCOffset()) / usecPerMsec);
+    tm.utcOffset = static_cast<long>((dstOff + getUTCOffset()) / msPerSecond);
     tm.timeZone = NULL;
 }
 
