Index: trunk/ppMops/src/ppMops.c
===================================================================
--- trunk/ppMops/src/ppMops.c	(revision 24986)
+++ trunk/ppMops/src/ppMops.c	(revision 25072)
@@ -6,7 +6,7 @@
 int main(int argc, char *argv[])
 {
-    if (argc != 4) {
+    if (argc != 5) {
         fprintf(stderr, "Insufficient arguments.\n");
-        fprintf(stderr, "Usage: %s DETECTIONS ZP OUTPUT\n", argv[0]);
+        fprintf(stderr, "Usage: %s DETECTIONS ZP EXP_ID OUTPUT\n", argv[0]);
         exit(PS_EXIT_CONFIG_ERROR);
     }
@@ -15,5 +15,6 @@
     data->detections = psStringCopy(argv[1]);
     data->zp = atof(argv[2]);
-    data->output = psStringCopy(argv[3]);
+    data->exp_id = atoll(argv[3]);
+    data->output = psStringCopy(argv[4]);
 
     if (!isfinite(data->zp)) {
@@ -120,12 +121,9 @@
         double alt = psMetadataLookupF64(NULL, header, "FPA.ALT");
         double az = psMetadataLookupF64(NULL, header, "FPA.AZ");
-        int imageid = psMetadataLookupS32(NULL, header, "IMAGEID");
+        psS64 imageid = psMetadataLookupS64(NULL, header, "IMAGEID");
         double mjd = psMetadataLookupF64(NULL, header, "MJD-OBS") + exptime / 2.0 / 3600 / 24;
 
         float psf = plateScale * 0.5 * (psMetadataLookupF32(NULL, header, "FWHM_MAJ") +
                                         psMetadataLookupF32(NULL, header, "FWHM_MIN"));
-
-        // XXX This is wrong
-        int fpaid = psMetadataLookupS32(NULL, header, "IMAGEID");
 
 
@@ -140,5 +138,5 @@
         psMetadataAddF64(outHeader, PS_LIST_TAIL, "TEL_AZ", 0, "Telescope azimuth", az);
         psMetadataAddS32(outHeader, PS_LIST_TAIL, "DIFFIMID", 0, "Difference image identifier", imageid);
-        psMetadataAddS32(outHeader, PS_LIST_TAIL, "FPA_ID", 0, "Exposure identifier", fpaid);
+        psMetadataAddS32(outHeader, PS_LIST_TAIL, "FPA_ID", 0, "Exposure identifier", data->exp_id);
         psMetadataAddStr(outHeader, PS_LIST_TAIL, "OBSCODE", 0, "IAU Observatory code", OBSERVATORY_CODE);
         psMetadataAddF32(outHeader, PS_LIST_TAIL, "STARPSF", 0, "Stellar PSF (arcsec)", psf);
Index: trunk/ppMops/src/ppMops.h
===================================================================
--- trunk/ppMops/src/ppMops.h	(revision 24986)
+++ trunk/ppMops/src/ppMops.h	(revision 25072)
@@ -16,4 +16,5 @@
     psString detections;                // Detections filename
     float zp;                           // Magnitude zero point
+    psS64 exp_id;                       // Exposure identifier
     psString output;                    // Output filename
 } ppMopsData;
