Index: trunk/ppSub/src/ppSubReadout.c
===================================================================
--- trunk/ppSub/src/ppSubReadout.c	(revision 17820)
+++ trunk/ppSub/src/ppSubReadout.c	(revision 17834)
@@ -196,4 +196,5 @@
 
     // Photometry stage 1: measure the PSF
+    pmPSF *psf = NULL;                  // PSF for photometry
     if (psMetadataLookupBool(NULL, config->arguments, "PHOTOMETRY")) {
         // We use a summed image as the basis for the PSF: this will have the maximum S/N.
@@ -233,5 +234,5 @@
         psMetadataRemoveKey(photRO->analysis, "PSPHOT.HEADER");
 
-        pmPSF *psf = psMetadataLookupPtr(NULL, photRO->parent->parent->analysis, "PSPHOT.PSF"); // PSF
+        psf = psMemIncrRefCounter(psMetadataLookupPtr(NULL, photRO->parent->parent->analysis, "PSPHOT.PSF"));
         if (!psf) {
             psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find PSF from psphot");
@@ -239,11 +240,6 @@
         }
 
-        pmReadout *psfRO = pmFPAfileThisReadout(config->files, view, "PSPHOT.PSF.LOAD");
-        if (!psfRO) {
-            psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find file PSPHOT.PSF.LOAD");
-            return false;
-        }
-        psMetadataAddPtr(psfRO->parent->parent->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN,
-                         "PSF from matched addition", psf);
+        pmCell *photCell = pmFPAfileThisCell(config->files, view, "PSPHOT.INPUT");
+        pmCellFreeReadouts(photCell);
     }
 
@@ -308,8 +304,19 @@
     }
 
+    psTraceSetLevel("psphot", 6);
+
     // Photometry stage 2: find and measure sources on the subtracted image
     if (psMetadataLookupBool(NULL, config->arguments, "PHOTOMETRY")) {
         // The PSF should already be stored for the readout
         pmFPAfile *photFile = psMetadataLookupPtr(NULL, config->files, "PSPHOT.INPUT");
+        pmFPACopy(photFile->fpa, outRO->parent->parent->parent);
+
+        pmReadout *psfRO = pmFPAfileThisReadout(config->files, view, "PSPHOT.PSF.LOAD");
+        if (!psfRO) {
+            psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find file PSPHOT.PSF.LOAD");
+            return false;
+        }
+        psMetadataAddPtr(psfRO->parent->parent->analysis, PS_LIST_TAIL, "PSPHOT.PSF", PS_DATA_UNKNOWN,
+                         "PSF from matched addition", psf);
 
         // Need to ensure aperture residual is not calculated
