Index: /branches/eam_branches/20090715/psphot/src/psphotRoughClass.c
===================================================================
--- /branches/eam_branches/20090715/psphot/src/psphotRoughClass.c	(revision 25361)
+++ /branches/eam_branches/20090715/psphot/src/psphotRoughClass.c	(revision 25362)
@@ -26,11 +26,12 @@
 	for (int iy = 0; iy < NY; iy ++) {
 
-	    psRegion region = psRegionSet (ix*dX, (ix + 1)*dX, iy*dY, (iy + 1)*dY);
-	    if (!psphotRoughClassRegion (nRegion, &region, sources, recipe, havePSF)) {
+	    psRegion *region = psRegionAlloc (ix*dX, (ix + 1)*dX, iy*dY, (iy + 1)*dY);
+	    if (!psphotRoughClassRegion (nRegion, region, sources, recipe, havePSF)) {
 		psLogMsg ("psphot", 4, "Failed to determine rough classification for region %f,%f - %f,%f\n", 
-			 region.x0, region.y0, region.x1, region.y1);
+			 region->x0, region->y0, region->x1, region->y1);
+		psFree (region);
 		continue;
 	    }
-	    
+	    psFree (region);
 	    nRegion ++;
 	}
@@ -45,5 +46,5 @@
     psphotVisualPlotMoments (recipe, sources);
     psphotVisualShowRoughClass (sources);
-    psphotVisualShowFlags (sources);
+    // XXX better visualization: psphotVisualShowFlags (sources);
 
     return true;
@@ -63,11 +64,14 @@
     psMetadata *regionMD = psMetadataLookupPtr (&status, recipe, regionName);
     if (!regionMD) {
+	// allocate the region metadata folder and add this region to it.
 	regionMD = psMetadataAlloc();
 	psMetadataAddMetadata (recipe, PS_LIST_TAIL, regionName, PS_META_REPLACE, "psf clump region", regionMD);
 	psFree (regionMD);
     }
+    psMetadataAddPtr (regionMD, PS_LIST_TAIL, "REGION", PS_DATA_REGION | PS_META_REPLACE, "psf clump region", region);
 
     if (!havePSF) {
 	// determine the PSF parameters from the source moment values
+	// XXX why not save the psfClump as a PTR?
 	psfClump = pmSourcePSFClump (region, sources, recipe);
 	psMetadataAddF32 (regionMD, PS_LIST_TAIL, "PSF.CLUMP.X",  PS_META_REPLACE, "psf clump center", psfClump.X);
