Index: /trunk/psphot/src/psphotBlendFit.c
===================================================================
--- /trunk/psphot/src/psphotBlendFit.c	(revision 21249)
+++ /trunk/psphot/src/psphotBlendFit.c	(revision 21250)
@@ -22,4 +22,20 @@
     }
     // nThreads = 0; // XXX until testing is complete, do not thread this function
+
+    // source fitting parameters for extended source fits
+    int fitIter = psMetadataLookupS32(&status, recipe, "EXT_FIT_ITER"); // Max number of fit iterations
+    assert (status && fitIter > 0);
+
+    float fitTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_TOL"); // Fit tolerance
+    assert (status && isfinite(fitTol) && fitTol > 0);
+
+    bool poisson = psMetadataLookupBool(&status, recipe, "POISSON.ERRORS.PHOT.LMM"); // Poisson errors?
+    assert (status);
+
+    float skySig = psMetadataLookupF32(&status, recipe, "SKY_SIG");
+    assert (status && isfinite(skySig) && skySig > 0);
+
+    // Define source fitting parameters for extended source fits
+    pmSourceFitModelInit(fitIter, fitTol, PS_SQR(skySig), poisson);
 
     psphotInitLimitsPSF (recipe, readout);
Index: /trunk/psphot/src/psphotReadout.c
===================================================================
--- /trunk/psphot/src/psphotReadout.c	(revision 21249)
+++ /trunk/psphot/src/psphotReadout.c	(revision 21250)
@@ -127,31 +127,4 @@
     psphotVisualShowPSFModel (readout, psf);
 
-    // Define source fitting parameters for everything that follows PSF fits
-    // This allows different parameters to be used from the PSF fitting
-    {
-        bool status = true;             // Status of MD lookup
-        int fitIter = psMetadataLookupS32(&status, recipe, "EXT_FIT_ITER"); // Max number of fit iterations
-        if (!status || fitIter <= 0) {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, true, "EXT_FIT_ITER is not positive");
-            return psphotReadoutCleanup(config, readout, recipe, detections, psf, sources);
-        }
-        float fitTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_TOL"); // Fit tolerance
-        if (!status || !isfinite(fitTol) || fitTol <= 0) {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, true, "EXT_FIT_TOL is not positive");
-            return psphotReadoutCleanup(config, readout, recipe, detections, psf, sources);
-        }
-        bool poisson = psMetadataLookupBool(&status, recipe, "POISSON.ERRORS.PHOT.LMM"); // Poisson errors?
-        if (!status) {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, true, "POISSON.ERRORS.PHOT.LMM is not defined");
-            return psphotReadoutCleanup(config, readout, recipe, detections, psf, sources);
-        }
-        float skySig = psMetadataLookupF32(&status, recipe, "SKY_SIG");
-        if (!status || !isfinite(skySig) || skySig <= 0) {
-            psError(PS_ERR_BAD_PARAMETER_VALUE, true, "SKY_SIG is not positive");
-            return psphotReadoutCleanup(config, readout, recipe, detections, psf, sources);
-        }
-        pmSourceFitModelInit(fitIter, fitTol, PS_SQR(skySig), poisson);
-    }
-
     // include externally-supplied sources
     psphotLoadExtSources (config, view, sources);
