Index: trunk/psModules/src/imcombine/pmSubtractionMatch.c
===================================================================
--- trunk/psModules/src/imcombine/pmSubtractionMatch.c	(revision 14766)
+++ trunk/psModules/src/imcombine/pmSubtractionMatch.c	(revision 14801)
@@ -46,5 +46,5 @@
 
 
-static bool getStamps(psArray **stamps, // Stamps to read
+static bool getStamps(pmSubtractionStampList **stamps, // Stamps to read
                       const psArray *stampsData, // Stamp data from a file
                       const pmReadout *reference, // Reference readout
@@ -84,11 +84,12 @@
 
         psFree(*stamps);
-        *stamps = pmSubtractionSetStamps(xStamp, yStamp, fluxStamp, subMask, region);
-    } else {
-        psTrace("psModules.imcombine", 3, "Finding stamps...\n");
-        *stamps = pmSubtractionFindStamps(*stamps, reference->image, subMask, region,
-                                          threshold, stampSpacing);
-    }
-    if (!stamps) {
+        // Apply exclusion zone if we're matching to a nominated PSF; otherwise don't care
+        *stamps = pmSubtractionSetStamps(xStamp, yStamp, fluxStamp, reference->image, subMask,
+                                         region, stampSpacing, input ? 0 : footprint);
+    }
+    psTrace("psModules.imcombine", 3, "Finding stamps...\n");
+    *stamps = pmSubtractionFindStamps(*stamps, reference->image, subMask, region,
+                                      threshold, stampSpacing);
+    if (!*stamps) {
         psError(PS_ERR_UNKNOWN, false, "Unable to find stamps.");
         return false;
@@ -220,5 +221,5 @@
     psRegion *region = NULL;            // Iso-kernel region
     psString regionString = NULL;       // String for region
-    psArray *stamps = NULL;             // Stamps for matching PSF
+    pmSubtractionStampList *stamps = NULL; // Stamps for matching PSF
     psVector *solution = NULL;          // Solution to match PSF
     pmSubtractionKernels *kernels = NULL; // Kernel basis functions
