Index: trunk/psModules/src/imcombine/pmPSFEnvelope.c
===================================================================
--- trunk/psModules/src/imcombine/pmPSFEnvelope.c	(revision 25488)
+++ trunk/psModules/src/imcombine/pmPSFEnvelope.c	(revision 25489)
@@ -170,5 +170,17 @@
             float y = source->peak->yf + yOffset->data.S32[j]; // y coordinate of source
 
-            double flux = fakeRO->image->data.F32[(int)y][(int)x];
+            // Perhaps I'm being paranoid, but specify a range to check
+            int uMax = PS_MIN(x + radius, numCols - 1), uMin = PS_MAX(x - radius, 0);
+            int vMax = PS_MIN(y + radius, numRows - 1), vMin = PS_MAX(y - radius, 0);
+
+            double flux = -INFINITY;    // Peak flux
+            for (int v = vMin; v <= vMax; v++) {
+                for (int u = uMin; u <= uMax; u++) {
+                    if (fakeRO->image->data.F32[v][u] > flux) {
+                        flux = fakeRO->image->data.F32[v][u];
+                    }
+                }
+            }
+
             if (!isfinite(flux) || flux < 0) {
                 continue;
@@ -240,6 +252,6 @@
         int xFake = source->peak->x + xOffset->data.S32[i];
         int yFake = source->peak->y + yOffset->data.S32[i];
-        psRegion region = psRegionSet(xFake - radius, xFake + radius,
-                                      yFake - radius, yFake + radius); // PSF region
+        psRegion region = psRegionSet(xFake - maxRadius, xFake + maxRadius,
+                                      yFake - maxRadius, yFake + maxRadius); // PSF region
         psImage *subImage = psImageSubset(envelope, region); // Subimage of fake PSF
 
