Index: trunk/psphot/src/psphotMergeSources.c
===================================================================
--- trunk/psphot/src/psphotMergeSources.c	(revision 33908)
+++ trunk/psphot/src/psphotMergeSources.c	(revision 33910)
@@ -744,6 +744,13 @@
     psAssert (readoutOut, "missing readout?");
 
+    pmDetections *detectionsOutOld = psMetadataLookupPtr (&status, readoutOut->analysis, "PSPHOT.DETECTIONS");
+    psArray *oldFootprints = detectionsOutOld ? detectionsOutOld->footprints : NULL;
+
     // replace any existing DETECTION container on readoutOut->analysis with the new one
     pmDetections *detectionsOut = pmDetectionsAlloc();
+    if (oldFootprints) {
+        // ... but hang on to any existing footprints so that they can be merged with new footprints in pass 2
+        detectionsOut->footprints = psMemIncrRefCounter(oldFootprints);
+    }
     detectionsOut->allSources = psArrayAllocEmpty (100);
     if (!psMetadataAddPtr (readoutOut->analysis, PS_LIST_TAIL, "PSPHOT.DETECTIONS", PS_META_REPLACE | PS_DATA_UNKNOWN, "psphot detections", detectionsOut)) {
