Index: trunk/psModules/src/imcombine/pmPSFEnvelope.c
===================================================================
--- trunk/psModules/src/imcombine/pmPSFEnvelope.c	(revision 25491)
+++ trunk/psModules/src/imcombine/pmPSFEnvelope.c	(revision 25738)
@@ -149,8 +149,27 @@
         }
 
+        // Test PSF
+        {
+            bool goodPSF = true;                                                                // Good PSF?
+            pmModelClassSetLimits(PM_MODEL_LIMITS_IGNORE);
+            pmModel *model = pmModelFromPSFforXY(psf, numCols / 2.0, numRows / 2.0, PEAK_FLUX); // Test model
+            model->modelSetLimits(PM_MODEL_LIMITS_STRICT);
+            for (int j = 0; j < model->params->n && goodPSF; j++) {
+                if (!model->modelLimits(PS_MINIMIZE_PARAM_MIN, j, model->params->data.F32, NULL) ||
+                    !model->modelLimits(PS_MINIMIZE_PARAM_MAX, j, model->params->data.F32, NULL)) {
+                    goodPSF = false;
+                }
+            }
+            psFree(model);
+            if (!goodPSF) {
+                psWarning("PSF %d is bad --- not including in envelope calculation.", i);
+                continue;
+            }
+        }
+
         pmResiduals *resid = psf->residuals;// PSF residuals
         psf->residuals = NULL;
         if (!pmReadoutFakeFromSources(fakeRO, fakeSize, fakeSize, fakes, 0, xOffset, yOffset, psf,
-                                      NAN, radius, true, true)) {
+                                      NAN, radius, true, false)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to generate fake readout.");
             psFree(envelope);
