Index: trunk/psModules/src/concepts/pmConceptsAverage.c
===================================================================
--- trunk/psModules/src/concepts/pmConceptsAverage.c	(revision 20571)
+++ trunk/psModules/src/concepts/pmConceptsAverage.c	(revision 20576)
@@ -28,4 +28,5 @@
 }
 
+
 bool pmConceptsAverageFPAs(pmFPA *target, psList *sources)
 {
@@ -37,4 +38,8 @@
     psTimeType timeSys = 0;             // Time system
     char *filter     = NULL;            // Filter
+    char *filterId   = NULL;            // Filter (parsed, abstract name)
+    char *telescope  = NULL;            // Telescope of origin
+    char *instrument = NULL;            // Instrument name
+    char *detector   = NULL;            // Detector name
 
     int num = 0;                        // Number of FPAs
@@ -48,4 +53,11 @@
         num++;
 
+#define COMPARE_STR(NAME, VALUE) \
+    if (strcmp(VALUE, psMetadataLookupStr(NULL, fpa->concepts, NAME)) != 0) { \
+        psWarning("Differing %s in use: %s vs %s\n", \
+                  NAME, VALUE, psMetadataLookupStr(NULL, fpa->concepts, NAME)); \
+        VALUE = "VARIOUS"; \
+    }
+
         psTime *fpaTime = psMetadataLookupPtr(NULL, fpa->concepts, "FPA.TIME");
         time       += psTimeToMJD(fpaTime);
@@ -53,4 +65,8 @@
             timeSys = psMetadataLookupS32(NULL, fpa->concepts, "FPA.TIMESYS");
             filter = psMetadataLookupStr(NULL, fpa->concepts, "FPA.FILTER");
+            filterId = psMetadataLookupStr(NULL, fpa->concepts, "FPA.FILTERID");
+            telescope = psMetadataLookupStr(NULL, fpa->concepts, "FPA.TELESCOPE");
+            instrument = psMetadataLookupStr(NULL, fpa->concepts, "FPA.INSTRUMENT");
+            detector = psMetadataLookupStr(NULL, fpa->concepts, "FPA.DETECTOR");
         } else {
             if (timeSys != psMetadataLookupS32(NULL, fpa->concepts, "FPA.TIMESYS")) {
@@ -58,16 +74,21 @@
                           timeSys, psMetadataLookupS32(NULL, fpa->concepts, "FPA.TIMESYS"));
             }
-            if (strcmp(filter, psMetadataLookupStr(NULL, fpa->concepts, "FPA.FILTER")) != 0) {
-                psWarning("Differing FPA.FILTER in use: %s vs %s\n",
-                          filter, psMetadataLookupStr(NULL, fpa->concepts, "FPA.FILTER"));
-            }
+            COMPARE_STR("FPA.FILTER", filter);
+            COMPARE_STR("FPA.FILTERID", filterId);
+            COMPARE_STR("FPA.TELESCOPE", telescope);
+            COMPARE_STR("FPA.INSTRUMENT", instrument);
+            COMPARE_STR("FPA.DETECTOR", detector);
         }
     }
     psFree(sourcesIter);
 
-    time      /= (double)num;
+    time /= (double)num;
 
     MD_UPDATE(target->concepts, "FPA.TIMESYS", S32, timeSys);
     MD_UPDATE_STR(target->concepts, "FPA.FILTER", filter);
+    MD_UPDATE_STR(target->concepts, "FPA.FILTERID", filterId);
+    MD_UPDATE_STR(target->concepts, "FPA.TELESCOPE", telescope);
+    MD_UPDATE_STR(target->concepts, "FPA.INSTRUMENT", instrument);
+    MD_UPDATE_STR(target->concepts, "FPA.DETECTOR", detector);
 
     // FPA.TIME needs special care
