Index: branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/UpdateMeasures.c
===================================================================
--- branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/UpdateMeasures.c	(revision 37701)
+++ branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/UpdateMeasures.c	(revision 37702)
@@ -66,9 +66,11 @@
 
       double R, D;
-      double dR = NAN, dD = NAN;
       XY_to_RD (&R, &D, X, Y, imcoords);
 
       int n = measureT[0].averef;
       Average *average = &catalog[i].average[n];
+
+      double dR = 3600.0*(average[0].R - R);
+      double dD = 3600.0*(average[0].D - D);
 
       // make sure detection is on the same side of the 0,360 boundary as the average
Index: branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/UpdateObjects.c
===================================================================
--- branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/UpdateObjects.c	(revision 37701)
+++ branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/UpdateObjects.c	(revision 37702)
@@ -332,4 +332,14 @@
   // to judge the quality of the PM and PAR fits, we need to fit all three models and compare Chisq
 
+  // project all of the R,D coordinates to a plane centered on this coordinate. set
+  // the times to be relative to Tmean (this is required for parallax as well)
+  for (k = 0; k < N; k++) {
+    RD_to_XY (&X[k], &Y[k], R[k], D[k], &coords);
+    T[k] -= Tmean;
+    if (XVERB) {
+      fprintf (stderr, OFF_T_FMT" %f %f %f  %f %f +/- %f %f\n",  k, T[k], R[k], D[k], X[k], Y[k], dX[k], dY[k]);
+    }
+  }	  
+
   // *** first fit for the proper motion (skip fit if Trange or Npts is too small) ***
   if ((mode == FIT_PM_ONLY) || (mode == FIT_PM_AND_PAR)) {
@@ -342,14 +352,4 @@
       goto skipPM;
     }
-
-    // project all of the R,D coordinates to a plane centered on this coordinate. set
-    // the times to be relative to Tmean (this is required for parallax as well)
-    for (k = 0; k < N; k++) {
-      RD_to_XY (&X[k], &Y[k], R[k], D[k], &coords);
-      T[k] -= Tmean;
-      if (XVERB) {
-	fprintf (stderr, OFF_T_FMT" %f %f %f  %f %f +/- %f %f\n",  k, T[k], R[k], D[k], X[k], Y[k], dX[k], dY[k]);
-      }
-    }	  
 
     FitPM (&fitPM, X, dX, Y, dY, T, N, XVERB);
@@ -426,12 +426,13 @@
     // ALWAYS fit the average model
     StatType statsR, statsD;
-    liststats_pos (R, dR, N, &statsR, XVERB); // WARNING: this function modifies R (do not use after here)
-    liststats_pos (D, dD, N, &statsD, XVERB); // WARNING: this function modifies D (do not use after here)
-
-    fitAve.Ro = statsR.mean;
-    fitAve.dRo = 3600.0*statsR.sigma;
-
-    fitAve.Do = statsD.mean;
-    fitAve.dDo = 3600.0*statsD.sigma;
+    liststats_pos (X, dX, N, &statsR, XVERB); // WARNING: this function modifies R (do not use after here)
+    liststats_pos (Y, dY, N, &statsD, XVERB); // WARNING: this function modifies D (do not use after here)
+
+    // project Ro, Do back to RA,DEC
+    XY_to_RD (&fitAve.Ro, &fitAve.Do, statsR.mean, statsD.mean, &coords);
+    if (XVERB) fprintf (stderr, "average: %f %f\n", fitAve.Ro, fitAve.Do);
+
+    fitAve.dRo = statsR.sigma;
+    fitAve.dDo = statsD.sigma;
 
     fitAve.chisq = (N > 1) ? 0.5 * (statsR.chisq + statsD.chisq) : NAN;
Index: branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/launch_region_hosts.c
===================================================================
--- branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/launch_region_hosts.c	(revision 37701)
+++ branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/launch_region_hosts.c	(revision 37702)
@@ -6,54 +6,57 @@
   int i;
 
-  // clear the I/O files
-  for (i = 0; i < regionHosts->Nhosts; i++) {
-    char *meansync = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "meanpos.sync");
-    if (truncate (meansync, 0)) fprintf (stderr, "trouble clearing meansync %s\n", meansync);
-    free (meansync);
-
-    char *meanfits = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "meanpos.fits");
-    if (truncate (meanfits, 0)) fprintf (stderr, "trouble clearing meanfits %s\n", meanfits);
-    free (meanfits);
-
-    char *meassync = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "measpos.sync");
-    if (truncate (meassync, 0)) fprintf (stderr, "trouble clearing meassync %s\n", meassync);
-    free (meassync);
-
-    char *measfits = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "measpos.fits");
-    if (truncate (measfits, 0)) fprintf (stderr, "trouble clearing measfits %s\n", measfits);
-    free (measfits);
-
-    char *icrfsync = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "icrfobj.sync");
-    if (truncate (icrfsync, 0)) fprintf (stderr, "trouble clearing icrfsync %s\n", icrfsync);
-    free (icrfsync);
-
-    char *icrffits = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "icrfobj.fits");
-    if (truncate (icrffits, 0)) fprintf (stderr, "trouble clearing icrffits %s\n", icrffits);
-    free (icrffits);
-
-    char *imsyncfile = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "imagepos.sync");
-    if (truncate (imsyncfile, 0)) fprintf (stderr, "trouble clearing imsyncfile %s\n", imsyncfile);
-    free (imsyncfile);
-
-    char *imfitsfile = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "imagepos.fits");
-    if (truncate (imfitsfile, 0)) fprintf (stderr, "trouble clearing imfitsfile %s\n", imfitsfile);
-    free (imfitsfile);
-
-    char *loopsyncfile = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "loop.sync");
-    if (truncate (loopsyncfile, 0)) fprintf (stderr, "trouble clearing loopsyncfile %s\n", loopsyncfile);
-    free (loopsyncfile);
-
-    char imagename[1024];
-    snprintf (imagename, 1024, "%s/Image.%d.fits", CATDIR, regionHosts->hosts[i].hostID);
-    if (unlink (imagename)) fprintf (stderr, "trouble clearing image %s\n", imagename);
+  // do not remote the sync and fits files if we do a manual run -- user must clear if needed
+  if (!PARALLEL_REGIONS_MANUAL) {
+    // clear the I/O files
+    for (i = 0; i < regionHosts->Nhosts; i++) {
+      char *meansync = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "meanpos.sync");
+      if (truncate (meansync, 0)) fprintf (stderr, "trouble clearing meansync %s\n", meansync);
+      free (meansync);
+
+      char *meanfits = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "meanpos.fits");
+      if (truncate (meanfits, 0)) fprintf (stderr, "trouble clearing meanfits %s\n", meanfits);
+      free (meanfits);
+
+      char *meassync = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "measpos.sync");
+      if (truncate (meassync, 0)) fprintf (stderr, "trouble clearing meassync %s\n", meassync);
+      free (meassync);
+
+      char *measfits = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "measpos.fits");
+      if (truncate (measfits, 0)) fprintf (stderr, "trouble clearing measfits %s\n", measfits);
+      free (measfits);
+
+      char *icrfsync = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "icrfobj.sync");
+      if (truncate (icrfsync, 0)) fprintf (stderr, "trouble clearing icrfsync %s\n", icrfsync);
+      free (icrfsync);
+
+      char *icrffits = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "icrfobj.fits");
+      if (truncate (icrffits, 0)) fprintf (stderr, "trouble clearing icrffits %s\n", icrffits);
+      free (icrffits);
+
+      char *imsyncfile = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "imagepos.sync");
+      if (truncate (imsyncfile, 0)) fprintf (stderr, "trouble clearing imsyncfile %s\n", imsyncfile);
+      free (imsyncfile);
+
+      char *imfitsfile = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "imagepos.fits");
+      if (truncate (imfitsfile, 0)) fprintf (stderr, "trouble clearing imfitsfile %s\n", imfitsfile);
+      free (imfitsfile);
+
+      char *loopsyncfile = make_filename (CATDIR, regionHosts->hosts[i].hostname, regionHosts->hosts[i].hostID, "loop.sync");
+      if (truncate (loopsyncfile, 0)) fprintf (stderr, "trouble clearing loopsyncfile %s\n", loopsyncfile);
+      free (loopsyncfile);
+
+      char imagename[1024];
+      snprintf (imagename, 1024, "%s/Image.%d.fits", CATDIR, regionHosts->hosts[i].hostID);
+      if (unlink (imagename)) fprintf (stderr, "trouble clearing image %s\n", imagename);
+    }
+
+    char *framesync = make_filename (CATDIR, "master", 0, "frame.corr.sync");
+    if (truncate (framesync, 0)) fprintf (stderr, "trouble clearing framesync %s\n", framesync);
+    free (framesync);
+  
+    char *framefits = make_filename (CATDIR, "master", 0, "frame.corr.fits");
+    if (truncate (framefits, 0)) fprintf (stderr, "trouble clearing framefits %s\n", framefits);
+    free (framefits);
   }
-
-  char *framesync = make_filename (CATDIR, "master", 0, "frame.corr.sync");
-  if (truncate (framesync, 0)) fprintf (stderr, "trouble clearing framesync %s\n", framesync);
-  free (framesync);
-  
-  char *framefits = make_filename (CATDIR, "master", 0, "frame.corr.fits");
-  if (truncate (framefits, 0)) fprintf (stderr, "trouble clearing framefits %s\n", framefits);
-  free (framefits);
 
   for (i = 0; i < regionHosts->Nhosts; i++) {
@@ -189,16 +192,12 @@
   int i;
 
+  int status = TRUE;
+
   if (PARALLEL_REGIONS_MANUAL) {
     fprintf (stderr, "run the relastro_client commands above.  when these are done, hit return\n");
     getchar();
   } else {
-    RegionHostTableWaitJobsGetIO (regionHosts, __FILE__, __LINE__, VERBOSE);
+    status = RegionHostTableWaitJobsGetIO (regionHosts, __FILE__, __LINE__, VERBOSE);
   }
- 
-  int status = TRUE;
-  for (i = 0; i < regionHosts->Nhosts; i++) {
-    status = status && (regionHosts->hosts[i].status == 0);
-  }
-
   return status;
 }
Index: branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/liststats.c
===================================================================
--- branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/liststats.c	(revision 37701)
+++ branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/liststats.c	(revision 37702)
@@ -252,5 +252,5 @@
     X2 += M / dM;
     dS += M;
-    if (XVERB) fprintf (stderr, "chisq contrib : %f : %f : %f : %f : %f\n", Mo, 3600.0*(value[i] - Mo), 3600.0*dvalue[i], (value[i] - Mo) / dvalue[i], X2);
+    if (XVERB) fprintf (stderr, "chisq contrib : %f : %f : %f : %f : %f\n", Mo, (value[i] - Mo), dvalue[i], (value[i] - Mo) / dvalue[i], X2);
   }
   X2 = X2 / (Nm - 1);
Index: branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/relastro_parallel_images.c
===================================================================
--- branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/relastro_parallel_images.c	(revision 37701)
+++ branches/eam_branches/ipp-20140904/Ohana/src/relastro/src/relastro_parallel_images.c	(revision 37702)
@@ -102,9 +102,9 @@
 
     case TARGET_CHIPS:
+      if (RESET_IMAGES) {
+	UpdateMeasures (catalog, Ncatalog);
+	MARKTIME("reset measures loop %d, host %d: %f sec\n", i, REGION_HOST_ID, dtime);
+      }
       for (i = 0; i < NLOOP; i++) {
-	if (RESET_IMAGES) {
-	  UpdateMeasures (catalog, Ncatalog);
-	  MARKTIME("reset measures loop %d, host %d: %f sec\n", i, REGION_HOST_ID, dtime);
-	}
 	UpdateObjects (catalog, Ncatalog, (i > 0));
 	MARKTIME("update objects loop %d, host %d: %f sec\n", i, REGION_HOST_ID, dtime);
