Index: trunk/psLib/src/astronomy/psTime.c
===================================================================
--- trunk/psLib/src/astronomy/psTime.c	(revision 2725)
+++ trunk/psLib/src/astronomy/psTime.c	(revision 2744)
@@ -10,6 +10,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.47 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-12-16 18:52:41 $
+ *  @version $Revision: 1.48 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-12-17 02:22:02 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -458,4 +458,5 @@
     utcTime->type = PS_TIME_UTC;
 
+
     // Calculate UT1 as Julian Centuries since J2000.0
     jdUt1Days = psTimeToJD(ut1Time);
@@ -881,5 +882,5 @@
         temp = (day - 146097+306)/146097+1;         // Avoid overflow if day close to maxint
         day -= temp * 146097-306;
-    } else if((day += 306 ) <= 0)
+    } else if((day += 306) <= 0)
     {
         temp = -( -day / 146097 + 1);               // Avoid ambiguity in C division of negatives
@@ -1082,6 +1083,5 @@
 psTime* psTimeMath(const psTime *time, psF64 delta)
 {
-    psS64 deltaSec = 0;
-    psF64 uSecTimeInput = 0.0;
+    psF64 sec = 0.0;
     psTime *outTime = NULL;
     psTime *tempTime = NULL;
@@ -1102,13 +1102,9 @@
     }
 
-    uSecTimeInput = tempTime->sec >= 0 ? 1.0 : -1.0;
-    uSecTimeInput = uSecTimeInput*tempTime->usec/1e6;
-    delta = delta + uSecTimeInput;
-    deltaSec = (psS64)delta;
-
     // Create output time
     outTime = psTimeAlloc(PS_TIME_TAI);
-    outTime->sec = delta + (psF64)tempTime->sec;
-    outTime->usec = fabs((delta-(psF64)deltaSec)*1e6);
+    sec = delta + (psF64)tempTime->sec + (psF64)tempTime->usec/1e6;
+    outTime->sec = sec;
+    outTime->usec = (sec - outTime->sec)*1e6;
 
     // Error check
