Index: /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/include/dvodb.h
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/include/dvodb.h	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/include/dvodb.h	(revision 34891)
@@ -250,4 +250,5 @@
       IMAGE_Y_ERR_SYS,
       IMAGE_MAG_ERR_SYS,
+      IMAGE_UBERCAL_DIST,
       IMAGE_NFIT_PHOTOM,
       IMAGE_NFIT_ASTROM,
Index: /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/src/dbExtractImages.c
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/src/dbExtractImages.c	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/src/dbExtractImages.c	(revision 34891)
@@ -328,4 +328,8 @@
       break;
 
+    case IMAGE_UBERCAL_DIST:
+      value.Int = image[N].ubercalDist;
+      break;
+
     case IMAGE_NFIT_PHOTOM:
       value.Int = image[N].nFitPhotom;
Index: /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/src/dbFields.c
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/src/dbFields.c	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/libdvo/src/dbFields.c	(revision 34891)
@@ -473,4 +473,8 @@
   if (!strcasecmp (fieldName, "dY_SYS"  )) ESCAPE (IMAGE_Y_ERR_SYS,  MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "dM_SYS"  )) ESCAPE (IMAGE_MAG_ERR_SYS,MAG_NONE, OPIHI_FLT);
+
+  if (!strcasecmp (fieldName, "UBERCAL_DIST")) ESCAPE (IMAGE_UBERCAL_DIST,MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "UCDIST")) ESCAPE (IMAGE_UBERCAL_DIST,MAG_NONE, OPIHI_INT);
+
   if (!strcasecmp (fieldName, "NFIT_PHOTOM")) ESCAPE (IMAGE_NFIT_PHOTOM,MAG_NONE, OPIHI_INT);
   if (!strcasecmp (fieldName, "NFIT_ASTROM")) ESCAPE (IMAGE_NFIT_ASTROM,MAG_NONE, OPIHI_INT);
Index: /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/StarOps.c
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/StarOps.c	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/StarOps.c	(revision 34891)
@@ -451,6 +451,9 @@
 	}
 
+	// skip some absurd values NAN, < 0.0, > 30.0
 	Msys = PhotSysTiny (&catalog[Nc].measureT[m], &catalog[Nc].averageT[j], &catalog[Nc].secfilt[j*Nsecfilt]);
 	if (isnan(Msys)) SKIP_THIS_MEAS(Nsys);
+	if (Msys <  0.0) SKIP_THIS_MEAS(Nsys);
+	if (Msys > 30.0) SKIP_THIS_MEAS(Nsys);
 
 	int myUbercalDist = getUbercalDist(m,Nc);
Index: /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/args.c
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/args.c	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/args.c	(revision 34891)
@@ -176,4 +176,11 @@
   }
 
+  SET_MREL_VERSION = 1;
+  if ((N = get_argument (argc, argv, "-set-mrel-version"))) {
+    remove_argument (N, &argc, argv);
+    SET_MREL_VERSION = atof(argv[N]);
+    remove_argument (N, &argc, argv);
+  }
+
   UPDATE = FALSE;
   if ((N = get_argument (argc, argv, "-update"))) {
Index: /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/reload_catalogs.c
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/reload_catalogs.c	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/reload_catalogs.c	(revision 34891)
@@ -187,4 +187,5 @@
     if (!KEEP_UBERCAL)    { snprintf (tmpline, 1024, "%s -reset-ubercal",	command); 		                          strcpy (command, tmpline); }
     if (UPDATE_CATFORMAT) { snprintf (tmpline, 1024, "%s -update-catformat %s", command, UPDATE_CATFORMAT); 		          strcpy (command, tmpline); }
+    if (SET_MREL_VERSION != 1) { snprintf (tmpline, 1024, "%s -set-mrel-version %d", command, SET_MREL_VERSION);                  strcpy (command, tmpline); }
     if (AreaSelect)       { snprintf (tmpline, 1024, "%s -area %f %f %f %f",    command, AreaXmin, AreaXmax, AreaYmin, AreaYmax); strcpy (command, tmpline); }
     if (TimeSelect) { 
Index: /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/relphot_objects.c
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/relphot_objects.c	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/relphot_objects.c	(revision 34891)
@@ -165,4 +165,5 @@
     if (UPDATE)        { snprintf (tmpline, 1024, "%s -update",         command); 		     strcpy (command, tmpline); }
     if (!KEEP_UBERCAL) { snprintf (tmpline, 1024, "%s -reset-ubercal",  command); 		     strcpy (command, tmpline); }
+    if (SET_MREL_VERSION != 1) { snprintf (tmpline, 1024, "%s -set-mrel-version %d", command, SET_MREL_VERSION); strcpy (command, tmpline); }
 
     fprintf (stderr, "command: %s\n", command);
Index: /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/setMrelCatalog.c
===================================================================
--- /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/setMrelCatalog.c	(revision 34890)
+++ /branches/eam_branches/ipp-20121219/Ohana/src/relphot/src/setMrelCatalog.c	(revision 34891)
@@ -48,6 +48,9 @@
 
   for (j = 0; j < catalog[Nc].Naverage; j++) {
-    off_t m = catalog[Nc].average[j].measureOffset;
-    setMrelAverageExposure (m, Nc, pass, flatcorr, results, &catalog[Nc].average[j], &catalog[Nc].averageT[j], &catalog[Nc].secfilt[j*Nsecfilt], &catalog[Nc].measure[m], &catalog[Nc].measureT[m], &catalog[Nc].found[Nsecfilt*j]);
+    // we are guaranteed to have averageT, but not average
+    off_t m = catalog[Nc].averageT[j].measureOffset;
+    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]);
 
     // only apply Stack operation on setMrelFinal in first pass 
@@ -147,6 +150,9 @@
       }
 
+      // skip some absurd values NAN, < 0.0, > 30.0
       Msys = PhotSysTiny (&measureT[k], &averageT[0], &secfilt[0]);
       if (isnan(Msys)) SKIP_THIS_MEAS(Nsys);
+      if (Msys <  0.0) SKIP_THIS_MEAS(Nsys);
+      if (Msys > 30.0) SKIP_THIS_MEAS(Nsys);
 
       int myUbercalDist = getUbercalDist(meas, cat);
