Index: /branches/pap_mops/ppMops/src/ppMopsMerge.c
===================================================================
--- /branches/pap_mops/ppMops/src/ppMopsMerge.c	(revision 25185)
+++ /branches/pap_mops/ppMops/src/ppMopsMerge.c	(revision 25186)
@@ -10,5 +10,5 @@
 
 #define LEAF_SIZE 4                     // Size of leaf
-#define MATCH_RADIUS 1.0/3600           // Matching radius
+#define MATCH_RADIUS SEC_TO_RAD(1.0)    // Matching radius
 
 // Get distance from detection to centre of image
Index: /branches/pap_mops/ppMops/src/ppMopsRead.c
===================================================================
--- /branches/pap_mops/ppMops/src/ppMopsRead.c	(revision 25185)
+++ /branches/pap_mops/ppMops/src/ppMopsRead.c	(revision 25186)
@@ -77,8 +77,8 @@
             det->x->data.F32[j] = psMetadataLookupF32(NULL, row, "X_PSF");
             det->y->data.F32[j] = psMetadataLookupF32(NULL, row, "Y_PSF");
-            det->ra->data.F32[j] = psMetadataLookupF32(NULL, row, "RA_PSF");
-            det->dec->data.F32[j] = psMetadataLookupF32(NULL, row, "DEC_PSF");
-            det->mag->data.F32[j] = psMetadataLookupF32(NULL, row, "Y_PSF");
-            det->magErr->data.F32[j] = psMetadataLookupF32(NULL, row, "Y_PSF");
+            det->ra->data.F64[j] = DEG_TO_RAD(psMetadataLookupF64(NULL, row, "RA_PSF"));
+            det->dec->data.F64[j] = DEG_TO_RAD(psMetadataLookupF64(NULL, row, "DEC_PSF"));
+            det->mag->data.F32[j] = psMetadataLookupF32(NULL, row, "PSF_INST_MAG");
+            det->magErr->data.F32[j] = psMetadataLookupF32(NULL, row, "PSF_INST_MAG_SIG");
             det->extended->data.F32[j] = psMetadataLookupF32(NULL, row, "EXT_NSIGMA");
             det->angle->data.F32[j] = 0.0;
@@ -86,5 +86,5 @@
             det->length->data.F32[j] = 0.0;
             det->lengthErr->data.F32[j] = 0.0;
-            det->flags->data.F32[j] = psMetadataLookupU32(NULL, row, "FLAGS");
+            det->flags->data.U32[j] = psMetadataLookupU32(NULL, row, "FLAGS");
             det->diffSkyfileId->data.F32[j] = diffSkyfileId;
             det->naxis1->data.S32[j] = naxis1;
@@ -103,6 +103,6 @@
             double xErr2 = PS_SQR(xErr), yErr2 = PS_SQR(yErr);
             double errScale = scale / 3600.0;
-            det->raErr->data.F32[j] = errScale * sqrt(cosAngle2 * xErr2 + sinAngle2 * yErr2);
-            det->decErr->data.F32[j] = errScale * sqrt(sinAngle2 * xErr2 + cosAngle2 * yErr2);
+            det->raErr->data.F64[j] = errScale * sqrt(cosAngle2 * xErr2 + sinAngle2 * yErr2);
+            det->decErr->data.F64[j] = errScale * sqrt(sinAngle2 * xErr2 + cosAngle2 * yErr2);
 
             plateScale += scale;
@@ -110,8 +110,13 @@
         det->seeing *= plateScale / size;
 
+        if (isfinite(args->zp)) {
+            psBinaryOp(det->mag, det->mag, "+", psScalarAlloc(args->zp, PS_TYPE_F32));
+        }
+
         psFree(table);
         detections->data[i] = det;
     }
 
+
     return detections;
 }
Index: /branches/pap_mops/ppMops/src/ppMopsWrite.c
===================================================================
--- /branches/pap_mops/ppMops/src/ppMopsWrite.c	(revision 25185)
+++ /branches/pap_mops/ppMops/src/ppMopsWrite.c	(revision 25186)
@@ -55,12 +55,12 @@
         psMetadataAddF64(row, PS_LIST_TAIL, "DEC", 0, "Declination (degrees)", NAN);
         psMetadataAddF64(row, PS_LIST_TAIL, "DEC_ERR", 0, "Declination error (degrees)", NAN);
-        psMetadataAddF64(row, PS_LIST_TAIL, "MAG", 0, "Magnitude", NAN);
-        psMetadataAddF64(row, PS_LIST_TAIL, "MAG_ERR", 0, "Magnitude error", NAN);
-        psMetadataAddF64(row, PS_LIST_TAIL, "STARPSF", 0, "EXT_NSIGMA", NAN);
+        psMetadataAddF32(row, PS_LIST_TAIL, "MAG", 0, "Magnitude", NAN);
+        psMetadataAddF32(row, PS_LIST_TAIL, "MAG_ERR", 0, "Magnitude error", NAN);
+        psMetadataAddF32(row, PS_LIST_TAIL, "STARPSF", 0, "EXT_NSIGMA", NAN);
         psMetadataAddF32(row, PS_LIST_TAIL, "ANGLE", 0, "Position angle of trail (degrees)", NAN);
         psMetadataAddF32(row, PS_LIST_TAIL, "ANGLE_ERR", 0, "Position angle error (degrees)", NAN);
         psMetadataAddF32(row, PS_LIST_TAIL, "LENGTH", 0, "Length of trail (arcsec)", NAN);
         psMetadataAddF32(row, PS_LIST_TAIL, "LENGTH_ERR", 0, "Length error (arcsec)", NAN);
-        psMetadataAddS32(row, PS_LIST_TAIL, "FLAGS", 0, "Detection bit flags", 0);
+        psMetadataAddU32(row, PS_LIST_TAIL, "FLAGS", 0, "Detection bit flags", 0);
         psMetadataAddS64(row, PS_LIST_TAIL, "DIFF_SKYFILE_ID", 0, "Identifier for diff skyfile", 0);
         if (!psFitsWriteTableEmpty(fits, header, row, OUT_EXTNAME)) {
@@ -75,13 +75,15 @@
         for (long i = 0; i < det->num; i++) {
             psMetadata *row = psMetadataAlloc(); // Output row
-            psMetadataAddF64(row, PS_LIST_TAIL, "RA", 0, "Right ascension (degrees)", det->ra->data.F64[i]);
+            psMetadataAddF64(row, PS_LIST_TAIL, "RA", 0, "Right ascension (degrees)",
+                             RAD_TO_DEG(det->ra->data.F64[i]));
             psMetadataAddF64(row, PS_LIST_TAIL, "RA_ERR", 0, "Right ascension error (degrees)",
                              det->raErr->data.F64[i]);
-            psMetadataAddF64(row, PS_LIST_TAIL, "DEC", 0, "Declination (degrees)", det->dec->data.F64[i]);
+            psMetadataAddF64(row, PS_LIST_TAIL, "DEC", 0, "Declination (degrees)",
+                             RAD_TO_DEG(det->dec->data.F64[i]));
             psMetadataAddF64(row, PS_LIST_TAIL, "DEC_ERR", 0, "Declination error (degrees)",
                              det->decErr->data.F64[i]);
-            psMetadataAddF64(row, PS_LIST_TAIL, "MAG", 0, "Magnitude", det->mag->data.F64[i]);
-            psMetadataAddF64(row, PS_LIST_TAIL, "MAG_ERR", 0, "Magnitude error", det->magErr->data.F64[i]);
-            psMetadataAddF64(row, PS_LIST_TAIL, "STARPSF", 0, "EXT_NSIGMA", det->extended->data.F32[i]);
+            psMetadataAddF32(row, PS_LIST_TAIL, "MAG", 0, "Magnitude", det->mag->data.F32[i]);
+            psMetadataAddF32(row, PS_LIST_TAIL, "MAG_ERR", 0, "Magnitude error", det->magErr->data.F32[i]);
+            psMetadataAddF32(row, PS_LIST_TAIL, "STARPSF", 0, "EXT_NSIGMA", det->extended->data.F32[i]);
             psMetadataAddF32(row, PS_LIST_TAIL, "ANGLE", 0, "Position angle of trail (degrees)",
                              det->angle->data.F32[i]);
@@ -92,5 +94,5 @@
             psMetadataAddF32(row, PS_LIST_TAIL, "LENGTH_ERR", 0, "Length error (arcsec)",
                              det->lengthErr->data.F32[i]);
-            psMetadataAddS32(row, PS_LIST_TAIL, "FLAGS", 0, "Detection bit flags", det->flags->data.S32[i]);
+            psMetadataAddU32(row, PS_LIST_TAIL, "FLAGS", 0, "Detection bit flags", det->flags->data.U32[i]);
             psMetadataAddS64(row, PS_LIST_TAIL, "DIFF_SKYFILE_ID", 0, "Identifier for diff skyfile",
                              det->diffSkyfileId->data.S64[i]);
