Index: trunk/Ohana/src/addstar/src/FilterStars.c
===================================================================
--- trunk/Ohana/src/addstar/src/FilterStars.c	(revision 15210)
+++ trunk/Ohana/src/addstar/src/FilterStars.c	(revision 15487)
@@ -45,8 +45,21 @@
     stars[N].dt      = MTIME;
 
-    stars[N].M       = MIN (stars[N].M + MTIME, NO_MAG);
+    if ((stars[N].M > 25.0) && (stars[N].M < 32.0)) {
+      fprintf (stderr, "*");
+    }
+
+    if (stars[N].M >= 0.001*NO_MAG) {
+      stars[N].M       = 0.001*NO_MAG;
+    } else {
+      stars[N].M       = stars[N].M + MTIME;
+    }
+
+    if (stars[N].M > 32.77) {
+      fprintf (stderr, "*");
+    }
+
     stars[N].dM      = MIN (stars[N].dM, NO_ERR);
 
-    stars[N].Mgal    = MIN (stars[N].Mgal + MTIME, NO_MAG);
+    stars[N].Mgal    = MIN (stars[N].Mgal + MTIME, 0.001*NO_MAG);
     
     if (SUBPIX) {
Index: trunk/Ohana/src/addstar/src/LoadStars.c
===================================================================
--- trunk/Ohana/src/addstar/src/LoadStars.c	(revision 15210)
+++ trunk/Ohana/src/addstar/src/LoadStars.c	(revision 15487)
@@ -102,5 +102,5 @@
 
     // advance to the next header
-    Nskip = gfits_matrix_size (headers[i]);
+    Nskip = gfits_data_size (headers[i]);
     fseek (f, Nskip, SEEK_CUR); 
     if (i == NHEADERS - 1) {
@@ -139,5 +139,5 @@
       extsize[0][i] = headers[i][0].size;
     } else {
-      extsize[0][i] = headers[i][0].size + gfits_matrix_size (headers[i]);
+      extsize[0][i] = headers[i][0].size + gfits_data_size (headers[i]);
     }
     gfits_scan (headers[i], "EXTTYPE", "%s", 1, exttype);
@@ -181,6 +181,6 @@
   // extension matched to the header in the PHU
   if (Nimage == 0) {
-    extsize[0][0] = headers[0][0].size + gfits_matrix_size (headers[0]);
-    extsize[0][1] = headers[1][0].size + gfits_matrix_size (headers[1]);
+    extsize[0][0] = headers[0][0].size + gfits_data_size (headers[0]);
+    extsize[0][1] = headers[1][0].size + gfits_data_size (headers[1]);
     gfits_scan (headers[1], ExtnameKeyword, "%s", 1, extname);
     if (!strcmp (extname, "SMPFILE")) {
Index: trunk/Ohana/src/addstar/src/ReadStarsFITS.c
===================================================================
--- trunk/Ohana/src/addstar/src/ReadStarsFITS.c	(revision 15210)
+++ trunk/Ohana/src/addstar/src/ReadStarsFITS.c	(revision 15487)
@@ -96,5 +96,9 @@
     stars[i].dX      = ps1data[i].dX;
     stars[i].dY      = ps1data[i].dY;
-    stars[i].M       = ps1data[i].M + ZeroPt;
+    if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
+	stars[i].M   = 0.001*NO_MAG;
+    } else {
+	stars[i].M   = ps1data[i].M + ZeroPt;
+    }
     stars[i].dM      = ps1data[i].dM;
     stars[i].Mpeak   = ps1data[i].Mpeak;
@@ -134,6 +138,6 @@
 
     /* these are not used */
-    stars[i].Map     = NO_MAG;
-    stars[i].Mgal    = NO_MAG;
+    stars[i].Map     = 0.001*NO_MAG;
+    stars[i].Mgal    = 0.001*NO_MAG;
     stars[i].dophot  = 0;
   }    
@@ -160,5 +164,9 @@
     stars[i].dX      = ps1data[i].dX;
     stars[i].dY      = ps1data[i].dY;
-    stars[i].M       = ps1data[i].M + ZeroPt;
+    if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) {
+	stars[i].M   = 0.001*NO_MAG;
+    } else {
+	stars[i].M   = ps1data[i].M + ZeroPt;
+    }
     stars[i].dM      = ps1data[i].dM;
     stars[i].Mpeak   = ps1data[i].Mpeak;
@@ -205,6 +213,6 @@
 
     /* these are not used */
-    stars[i].Map     = NO_MAG;
-    stars[i].Mgal    = NO_MAG;
+    stars[i].Map     = 0.001*NO_MAG;
+    stars[i].Mgal    = 0.001*NO_MAG;
     stars[i].dophot  = 0;
   }    
