Index: trunk/psModules/src/imcombine/pmPSFEnvelope.c
===================================================================
--- trunk/psModules/src/imcombine/pmPSFEnvelope.c	(revision 18611)
+++ trunk/psModules/src/imcombine/pmPSFEnvelope.c	(revision 18788)
@@ -110,4 +110,5 @@
     psImageInit(envelope, SKY_VALUE);
     pmReadout *fakeRO = pmReadoutAlloc(NULL); // Fake readout
+    float maxRadius = 0.0;              // Maximum radius of sources
     for (int i = 0; i < inputs->n; i++) {
         pmPSF *psf = inputs->data[i];   // PSF of interest
@@ -142,4 +143,12 @@
             psFree(subImage);
             psFree(subEnv);
+
+            // Get the radius
+            pmModel *model = pmModelFromPSFforXY(psf, x, y, PEAK_FLUX); // Model for source
+            float srcRadius = model->modelRadius(model->params, WEIGHT_VAL); // Radius for source
+            if (srcRadius > maxRadius) {
+                maxRadius = srcRadius;
+            }
+            psFree(model);
         }
 
@@ -234,5 +243,5 @@
         source->maskObj = NULL;
 
-        if (!pmSourceDefinePixels(source, readout, x, y, (float)radius)) {
+        if (!pmSourceDefinePixels(source, readout, x, y, maxRadius)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to define pixels for source.");
             psFree(readout);
@@ -241,5 +250,5 @@
         }
 
-        if (!pmSourceMoments(source, radius)) {
+        if (!pmSourceMoments(source, maxRadius)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to measure moments for source.");
             psFree(readout);
@@ -255,5 +264,5 @@
     options->poissonErrorsParams = true;
     options->stats = psStatsAlloc(PSF_STATS);
-    options->radius = radius;
+    options->radius = maxRadius;
     options->psfTrendMode = PM_TREND_MAP;
     options->psfTrendNx = xOrder;
