Index: /trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 17253)
+++ /trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 17254)
@@ -78,4 +78,5 @@
   Image *image;
   Coords *mosaic;
+  PhotCode *equiv;
 
   value = NAN;
@@ -83,9 +84,12 @@
   switch (field->ID) {
     case MEAS_MAG: /* magnitudes are already determined above */
+      equiv = GetPhotcodeEquivbyCode (measure[0].photcode);
+
       // we return the magnitude for this measure if:
       if (field->photcode->type == PHOT_MAG) goto valid_photcode;
       if ((field->photcode->type == PHOT_REF) && (measure[0].photcode == field->photcode->code)) goto valid_photcode;
       if ((field->photcode->type == PHOT_DEP) && (measure[0].photcode == field->photcode->code)) goto valid_photcode;
-      if ((field->photcode->type == PHOT_SEC) && (GetPhotcodeEquivCodebyCode (measure[0].photcode) == field->photcode->code)) goto valid_photcode;
+
+      if ((equiv != NULL) && (field->photcode->type == PHOT_SEC) && (equiv[0].code == field->photcode->code)) goto valid_photcode;
       break;
 
@@ -105,15 +109,15 @@
 	  break;
 	case MAG_CAL:
-	  value = PhotCal  (measure, average, secfilt, measure, GetPhotcodeEquivbyCode (measure[0].photcode)); 
+	  value = PhotCal  (measure, average, secfilt, measure, equiv); 
 	  break;
 	case MAG_AVE:
-	  value = PhotAve  (GetPhotcodeEquivbyCode (measure[0].photcode), average, secfilt); 
+	  value = PhotAve  (equiv, average, secfilt); 
 	  break;
 	case MAG_REF:
-	  value = PhotRef  (GetPhotcodeEquivbyCode (measure[0].photcode), average, secfilt, measure); 
+	  value = PhotRef  (equiv, average, secfilt, measure); 
 	  break;
 	case MAG_ERR:
 	  if (field->photcode->type == PHOT_SEC) {
-	    value = PhotdM  (GetPhotcodeEquivbyCode (measure[0].photcode), average, secfilt); 
+	    value = PhotdM  (equiv, average, secfilt); 
 	  } else {
 	    value = measure[0].dM;
@@ -121,13 +125,21 @@
 	  break;
 	case MAG_CHISQ:
-	  value = PhotXm  (GetPhotcodeEquivbyCode (measure[0].photcode), average, secfilt); 
+	  value = PhotXm  (equiv, average, secfilt); 
 	  break;
 	case MAG_NCODE:
-	  Nsec = GetPhotcodeNsec (GetPhotcodeEquivCodebyCode (measure[0].photcode));
+	  if (equiv == NULL) {
+	    value = NAN;
+	    break;
+	  }
+	  Nsec = GetPhotcodeNsec (equiv);
 	  if (Nsec == -1) break;
 	  value = secfilt[Nsec].Ncode;
 	  break;
 	case MAG_NPHOT:
-	  Nsec = GetPhotcodeNsec (GetPhotcodeEquivCodebyCode (measure[0].photcode));
+	  if (equiv == NULL) {
+	    value = NAN;
+	    break;
+	  }
+	  Nsec = GetPhotcodeNsec (equiv);
 	  if (Nsec == -1) break;
 	  value = secfilt[Nsec].Nused;
