Index: /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/StarOps.c
===================================================================
--- /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/StarOps.c	(revision 37000)
+++ /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/StarOps.c	(revision 37001)
@@ -410,5 +410,5 @@
 
       /* star/photcodes already calibrated */
-      if ( isSetMrelFinal && catalog[Nc].found[Nsecfilt*j+Nsec]) continue;  
+      if ( isSetMrelFinal && catalog[Nc].found_t[Nsecfilt*j+Nsec]) continue;  
       
       // skip bad stars
@@ -683,5 +683,5 @@
 
       if (isSetMrelFinal) {
-	catalog[Nc].found[Nsecfilt*j+Nsec] = TRUE;
+	catalog[Nc].found_t[Nsecfilt*j+Nsec] = TRUE;
 
 	catalog[Nc].secfilt[Nsecfilt*j+Nsec].Mstdev = 1000.0*stats.sigma; // Mstdev is in millimags (not enough space for more precision)
@@ -1073,5 +1073,5 @@
 	
 	/* on final processing, skip stars already measured */
-	if (final && catalog[i].found[Nsecfilt*j + Nsec]) continue;  
+	if (final && catalog[i].found_t[Nsecfilt*j + Nsec]) continue;  
 
 	/* skip bad stars to prevent them from becoming good (on inner sample) */
Index: /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/relphot_parallel_regions.c
===================================================================
--- /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/relphot_parallel_regions.c	(revision 37000)
+++ /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/relphot_parallel_regions.c	(revision 37001)
@@ -1,3 +1,4 @@
 # include "relphot.h"
+int save_images_backup (FITS_DB *db);
 
 int relphot_parallel_regions () {
@@ -63,4 +64,7 @@
   SkyList *skylist = SkyListByBounds (sky, -1, regionHosts->Rmin, regionHosts->Rmax, regionHosts->Dmin, regionHosts->Dmax);
 
+  // I have to save a copy because dvo_image_save and _unlock swap and free the data
+  save_images_backup (&db);
+
   /* update catalogs (in parallel) */
   reload_catalogs (skylist, flatcorr, 0, NULL);
@@ -74,2 +78,37 @@
 }
 
+int save_images_backup (FITS_DB *db) {
+
+  FITS_DB dbX;
+  char filename[1024];
+
+  INITTIME;
+
+  gfits_db_init (&dbX);
+  dbX.lockstate = LCK_XCLD;
+  dbX.timeout   = 60.0;
+  dbX.mode      = db->mode;
+  dbX.format    = db->format;
+
+  snprintf (filename, 1024, "%s.bck", ImageCat);
+  if (!gfits_db_lock (&dbX, filename)) {
+    fprintf (stderr, "can't lock backup image image catalog\n");
+    return (FALSE);
+  }
+    
+  // copy Images.dat data (all or only the subset / vtable elements?)  I think I need to dump
+  // the entire Image table, but with the updates in place I think this says: re-work the
+  // ftable/vtable usage in this program to be more sensible...
+  gfits_copy_header (&db->header,  &dbX.header);
+  gfits_copy_matrix (&db->matrix,  &dbX.matrix);
+  gfits_copy_header (&db->theader, &dbX.theader);
+  gfits_copy_ftable (&db->ftable,  &dbX.ftable);
+
+  dbX.ftable.header = &dbX.theader;
+
+  dvo_image_save (&dbX, VERBOSE);
+  dvo_image_unlock (&dbX); 
+  MARKTIME("-- save Image.dat.bck: %f sec\n", dtime);
+
+  return TRUE;
+}
Index: /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/setMrelCatalog.c
===================================================================
--- /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/setMrelCatalog.c	(revision 37000)
+++ /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/setMrelCatalog.c	(revision 37001)
@@ -60,5 +60,5 @@
     Average *average = catalog[Nc].average ? &catalog[Nc].average[j] : NULL;
     Measure *measure = catalog[Nc].measure ? &catalog[Nc].measure[m] : NULL;
-    setMrelAverageExposure (m, Nc, pass, flatcorr, results, average, &catalog[Nc].averageT[j], &catalog[Nc].secfilt[j*Nsecfilt], measure, &catalog[Nc].measureT[m], &catalog[Nc].found[Nsecfilt*j]);
+    setMrelAverageExposure (m, Nc, pass, flatcorr, results, average, &catalog[Nc].averageT[j], &catalog[Nc].secfilt[j*Nsecfilt], measure, &catalog[Nc].measureT[m], &catalog[Nc].found_t[Nsecfilt*j]);
 
     // only apply Stack operation on setMrelFinal in first pass 
@@ -70,5 +70,5 @@
     // only measure force-warp mean values if issetMrelFinal (make it optional?)
     if (isSetMrelFinal) {
-      setMrelAverageForcedWarp (m, Nc, pass, results, &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt], &catalog[Nc].measure[m], &catalog[Nc].foundWarp[Nsecfilt*j]);
+      setMrelAverageForcedWarp (m, Nc, pass, results, &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt], &catalog[Nc].measure[m], &catalog[Nc].foundWarp_t[Nsecfilt*j]);
       setGlobalObjStats (&catalog[Nc].average[j], &catalog[Nc].measure[m]);
     }
Index: /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/setMrelFinal.c
===================================================================
--- /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/setMrelFinal.c	(revision 37000)
+++ /branches/eam_branches/ipp-20140610/Ohana/src/relphot/src/setMrelFinal.c	(revision 37001)
@@ -85,9 +85,9 @@
 
   /* set catalog[0].found[i] = FALSE */
-  ALLOCATE (catalog[0].found, off_t, MAX (1, Nsecfilt*catalog[0].Naverage));
-  ALLOCATE (catalog[0].foundWarp, off_t, MAX (1, Nsecfilt*catalog[0].Naverage));
+  ALLOCATE (catalog[0].found_t, off_t, MAX (1, Nsecfilt*catalog[0].Naverage));
+  ALLOCATE (catalog[0].foundWarp_t, off_t, MAX (1, Nsecfilt*catalog[0].Naverage));
   for (i = 0; i < Nsecfilt*catalog[0].Naverage; i++) {
-    catalog[0].found[i] = FALSE;
-    catalog[0].foundWarp[i] = FALSE;
+    catalog[0].found_t[i] = FALSE;
+    catalog[0].foundWarp_t[i] = FALSE;
   }
 
@@ -196,5 +196,5 @@
       
       /* star/photcodes already calibrated */
-      if (catalog[0].found[Nsecfilt*i+Nsec]) continue;  
+      if (catalog[0].found_t[Nsecfilt*i+Nsec]) continue;  
 
       m = catalog[0].average[i].measureOffset;
