Index: trunk/psphot/src/LocalSky.c
===================================================================
--- trunk/psphot/src/LocalSky.c	(revision 4216)
+++ trunk/psphot/src/LocalSky.c	(revision 4251)
@@ -7,11 +7,17 @@
 			  psF32 Radius)
 {
+    psRegion *srcRegion;
+
     // Grab a subimage of the original image of size (2 * outerRadius).
     srcRegion = psRegionSquare (x, y, Radius);
-    srcRegion = psRegionForImage (srcRegion, imdata->image);
+    srcRegion = psRegionForImage (srcRegion, imdata->image, srcRegion);
 
-    psImage *subImage = psImageSubset(imdata->image, srcRegion);
-    psImage *subImageMask = psImageSubset(imdata->mask, srcRegion);
-    psImage *subImageNoise = psImageSubset(imdata->noise, srcRegion);
+//  psImage *subImage = psImageSubset(imdata->image, srcRegion);
+//  psImage *subImageMask = psImageSubset(imdata->mask, srcRegion);
+//  psImage *subImageNoise = psImageSubset(imdata->noise, srcRegion);
+
+    psImage *subImage = psImageSubset(imdata->image, srcRegion->x0, srcRegion->y0, srcRegion->x1, srcRegion->y1);
+    psImage *subImageMask = psImageSubset(imdata->mask, srcRegion->x0, srcRegion->y0, srcRegion->x1, srcRegion->y1);
+    psImage *subImageNoise = psImageSubset(imdata->noise, srcRegion->x0, srcRegion->y0, srcRegion->x1, srcRegion->y1);
 
     mySource->pixels = subImage;
@@ -30,25 +36,21 @@
     psImage *image = source->pixels;
     psImage *mask  = source->mask;
-    psImage *peak  = source->peak;
+    psPeak *peak  = source->peak;
+    psRegion *srcRegion;
 
     srcRegion = psRegionSquare (peak->x, peak->y, Radius);
-    srcRegion = psRegionForImage (srcRegion, imdata->mask);
-    psImageMaskRegion (imdata->mask, region, OR, 0x80);
+    srcRegion = psRegionForImage (srcRegion, mask, srcRegion);
+    psImageMaskRegion (mask, srcRegion, OR, 0x80);
 
     psStats *myStats = psStatsAlloc(statsOptions);
     myStats = psImageStats(myStats, image, mask, 0xff);
-    psImageMaskRegion (imdata->mask, region, AND, 0x7f);
+    psImageMaskRegion (mask, srcRegion, AND, 0x7f);
 
-    mySource->moments = pmMomentsAlloc();
+    source->moments = pmMomentsAlloc();
     psF64 tmpF64;
     p_psGetStatValue(myStats, &tmpF64);
-    mySource->moments->Sky = (psF32) tmpF64;
+    source->moments->Sky = (psF32) tmpF64;
 
     return (true);
 }
 
-// define a square region centered on the given coordinate
-psRegion *psRegionSquare (psF32 x, psF32 y, psF32 radius) {
-    region = psRegionAlloc (x - Radius, y - Radius, x + Radius + 1, y + Radius + 1);
-    return (region);
-}
