Index: trunk/psLib/src/astronomy/psCoord.c
===================================================================
--- trunk/psLib/src/astronomy/psCoord.c	(revision 3292)
+++ trunk/psLib/src/astronomy/psCoord.c	(revision 3325)
@@ -10,6 +10,6 @@
 *  @author GLG, MHPCC
 *
-*  @version $Revision: 1.52 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2005-02-19 02:43:11 $
+*  @version $Revision: 1.53 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2005-02-25 02:49:00 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -32,5 +32,9 @@
 /******************************************************************************/
 
-// None
+// Modified Julian Day 01/01/1900 00:00:00
+#define MJD_1900 15021.0
+
+// Days in Julian century
+#define JULIAN_CENTURY 36525.0
 
 /******************************************************************************/
@@ -315,19 +319,29 @@
 psSphereTransform* psSphereTransformICRSToEcliptic(psTime *time)
 {
+    psF64 T;
+
+    // Check for null parameter
     PS_PTR_CHECK_NULL(time, NULL);
+
+    // Convert psTime to MJD
     psF64 MJD = psTimeToMJD(time);
-    struct tm *tmTime = psTimeToTM(time);
-    psF64 year = (psF64)(1900 - MJD + tmTime->tm_year);
-    psF64 T = year / 100.0;
+
+    // Check the specified MJD is greater than 1900
+    if ( MJD < MJD_1900 ) {
+        psError(PS_ERR_BAD_PARAMETER_TYPE,true,PS_ERRORTEXT_psCoord_INVALID_MJD);
+        return NULL;
+    }
+
+    // Calculate number of Julian centuries since 1900
+    T = ( MJD - MJD_1900 ) / JULIAN_CENTURY;
+
     psF64 alphaP = 0.0;
     psF64 deltaP = DEG_TO_RAD(23.0) +
-                   SEC_TO_RAD(27.0) +
-                   MIN_TO_RAD(8.0) -
+                   MIN_TO_RAD(27.0) +
+                   SEC_TO_RAD(8.26) -
                    (SEC_TO_RAD(46.845) * T) -
                    (SEC_TO_RAD(0.0059) * T * T) +
                    (SEC_TO_RAD(0.00181) * T * T * T);
     psF64 phiP = 0.0;
-
-    psFree(tmTime);
 
     // Don't neglect the minus sign on deltaP (bug 244):
