Index: /trunk/psphot/src/psphotStackReadout.c
===================================================================
--- /trunk/psphot/src/psphotStackReadout.c	(revision 34134)
+++ /trunk/psphot/src/psphotStackReadout.c	(revision 34135)
@@ -1,3 +1,5 @@
 # include "psphotInternal.h"
+
+static bool psphotStackLoadWCS(pmConfig *config, const pmFPAview *view, const char *filerule);
 
 // we have 3 possible real filesets:
@@ -67,4 +69,10 @@
     char *STACK_SRC = useRaw ? STACK_RAW : STACK_CNV;
     char *STACK_DET = STACK_RAW;
+
+    // load WCS 
+    if (!psphotStackLoadWCS(config, view, STACK_SRC)) {
+        psError (PSPHOT_ERR_CONFIG, false, "trouble loading WCS for %s", STACK_SRC);
+        return false;
+    }
 
     // set the photcode for each image
@@ -344,9 +352,11 @@
             }
         }
-        psphotRadialApertures (config, view, STACK_CNV, 0); // XXX entry 0 == unmatched?
+        psphotRadialApertures (config, view, STACK_CNV, 0); // entry 0 == unmatched
         psMemDump("extmeas");
 
+        // mark any inputs that we want to skip the matched apertures for
+        psphotStackSetInputsToSkip(config, view, STACK_OUT, true);
+
         int nRadialEntries = psphotStackMatchPSFsEntries(config, view, STACK_OUT);
-
         for (int entry = 1; entry < nRadialEntries; entry++) {
             // NOTE: entry 0 is the unmatched image set
@@ -362,5 +372,4 @@
 
             // measure circular, radial apertures (objects sorted by S/N)
-            // entry 0 == unmatched? pass entry + 1?
             psphotRadialApertures (config, view, STACK_OUT, entry); 
 
@@ -373,4 +382,5 @@
         }
     }
+    psphotStackSetInputsToSkip(config, view, STACK_OUT, false);
 
     // measure aperture photometry corrections
@@ -413,4 +423,26 @@
     // create the exported-metadata and free local data
     return psphotReadoutCleanup (config, view, STACK_SRC);
+}
+
+static bool psphotStackLoadWCS(pmConfig *config, const pmFPAview *view, const char *filerule) {
+
+    int num = psphotFileruleCount(config, filerule);
+
+    for (int i=0; i<num; i++) {
+        pmFPAfile *file = pmFPAfileSelectSingle(config->files, filerule, i); // File of interest
+        psAssert (file, "missing file?");
+    
+        pmReadout *readout = pmFPAviewThisReadout(view, file->fpa);
+        psAssert (readout, "missing readout?");
+
+        pmHDU *hdu = pmHDUFromReadout(readout);
+        psAssert (hdu, "input missing hdu?");
+
+        if (!pmAstromReadWCS(file->fpa, readout->parent->parent, hdu->header, 1.0)) {
+            psError (PSPHOT_ERR_UNKNOWN, false, "failed to read WCS from header for input %d", i);
+            return false;
+        }
+    }
+    return true;
 }
 
