Index: /trunk/Ohana/src/dvopsps/include/dvopsps.h
===================================================================
--- /trunk/Ohana/src/dvopsps/include/dvopsps.h	(revision 40294)
+++ /trunk/Ohana/src/dvopsps/include/dvopsps.h	(revision 40295)
@@ -36,4 +36,5 @@
   unsigned int flags;
   unsigned int objflags;
+  unsigned int filtflags;
 } Detections;
 
@@ -99,5 +100,5 @@
 int    insert_detections_mysql_array      PROTO((MYSQL *mysql, Detections *detections, int Ndetections));
 int    insert_detections_mysql_detvalue   PROTO((IOBuffer *buffer, Detections *detection));
-int    assign_detection_values            PROTO((Detections *detection, Measure *measure, Average *average));
+int    assign_detection_values            PROTO((Detections *detection, Measure *measure, Average *average, SecFilt *secfilt));
 
 int    init_detections                    PROTO((void));
Index: /trunk/Ohana/src/dvopsps/src/insert_detections_dvopsps_catalog.c
===================================================================
--- /trunk/Ohana/src/dvopsps/src/insert_detections_dvopsps_catalog.c	(revision 40294)
+++ /trunk/Ohana/src/dvopsps/src/insert_detections_dvopsps_catalog.c	(revision 40295)
@@ -19,4 +19,5 @@
 
   ZeroPoint = GetZeroPoint();
+  int Nsecfilt = GetPhotcodeNsecfilt ();
 
   int missingID = 0;
@@ -51,5 +52,10 @@
       if (measure->photcode >=  PHOTCODE_END) continue;
 
-      assign_detection_values (&detections[Ndetections], measure, average);
+      int equivCode = GetPhotcodeEquivCodebyCode (measure->photcode);
+      int Nsec = GetPhotcodeNsec (equivCode);
+
+      SecFilt *secfilt = (Nsec >= 0) ? &catalog->secfilt[Nsecfilt*i + Nsec] : NULL;
+
+      assign_detection_values (&detections[Ndetections], measure, average, secfilt);
       Ndetections ++;
 
@@ -97,4 +103,5 @@
 
   ZeroPoint = GetZeroPoint();
+  int Nsecfilt = GetPhotcodeNsecfilt ();
 
   INITTIME;
@@ -127,7 +134,12 @@
       if (measure[Nmeas].photcode >=  PHOTCODE_END) continue;
 
+      int equivCode = GetPhotcodeEquivCodebyCode (measure[Nmeas].photcode);
+      int Nsec = GetPhotcodeNsec (equivCode);
+
+      SecFilt *secfilt = (Nsec > -1) ? &catalog->secfilt[Nsecfilt*i + Nsec] : NULL;
+
       // XXX check return status
       Detections detection;
-      assign_detection_values (&detection, &measure[Nmeas], &average[i]);
+      assign_detection_values (&detection, &measure[Nmeas], &average[i], secfilt);
 
       if (!insert_detections_mysql_detvalue (&buffer, &detection)) {
@@ -184,5 +196,5 @@
   PrintIOBuffer (buffer, "INSERT INTO dvoDetectionFull (objID, detectID, ippObjID, ippDetectID, imageID, catID, ");
   PrintIOBuffer (buffer, "ra, dec_, raErr, decErr, zpPSF, zpFactorPSF, zpAPER, zpFactorAPER, telluricExt, airmass, expTime, ");
-  PrintIOBuffer (buffer, "Mpsf, dMpsf, Mkron, dMkron, Map, dMap, flags, objflags) VALUES \n");
+  PrintIOBuffer (buffer, "Mpsf, dMpsf, Mkron, dMkron, Map, dMap, flags, objflags, filtflags) VALUES \n");
 
   return TRUE;
@@ -270,5 +282,6 @@
 
   PrintIOBuffer (buffer, "%u, ", detection->flags);	 // measure.flags
-  PrintIOBuffer (buffer, "%u),\n", detection->objflags); // average.flags
+  PrintIOBuffer (buffer, "%u, ", detection->objflags); // average.flags
+  PrintIOBuffer (buffer, "%u),\n", detection->filtflags); // secfilt.flags
   return TRUE;
 }
@@ -305,5 +318,5 @@
 }
 
-int assign_detection_values (Detections *detection, Measure *measure, Average *average) {
+int assign_detection_values (Detections *detection, Measure *measure, Average *average, SecFilt *secfilt) {
 
   // myAbort ("check on measure->McalPSF vs McalAPER");
@@ -355,6 +368,7 @@
   detection->flags     = measure->dbFlags; // flags
   detection->objflags  = average->flags;   // flags
-
-  return TRUE;
-}
-
+  detection->filtflags = secfilt ? secfilt->flags : 0; // flags
+
+  return TRUE;
+}
+
