Index: trunk/psphot/src/psphotEnsemblePSF.c
===================================================================
--- trunk/psphot/src/psphotEnsemblePSF.c	(revision 6862)
+++ trunk/psphot/src/psphotEnsemblePSF.c	(revision 6900)
@@ -29,6 +29,5 @@
     psArray  *models = psArrayAlloc (sources->n);
     psVector *index  = psVectorAlloc (sources->n, PS_TYPE_U32);
-    models->n = 0;
-    index->n = 0;
+    models->n = index->n = 0;
 
     // option to limit analysis to a specific region
@@ -118,9 +117,9 @@
 	// fill in the model pixel values
 	psImageInit (flux, 0.0);
-	psImageKeepCircle (mask, x, y, model->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
+	psImageKeepCircle (mask, x, y, model->radiusTMP, "OR", PM_MASK_MARK);
 	pmModelAdd (flux, mask, model, false, false);
 
 	// calculate nDOF (nPix - 1)
-	// int Nmaskpix = psImageCountPixelMask (mask, allArray, PM_SOURCE_MASK_SATURATED);
+	// int Nmaskpix = psImageCountPixelMask (mask, allArray, PM_MASK_SAT);
 	// model->nDOF  = mask->numCols*mask->numRows - Nmaskpix - 1;
 
@@ -136,4 +135,6 @@
     psSparse *sparse = psSparseAlloc (models->n, 100);
     psVector *weight = psVectorAlloc (models->n, PS_TYPE_F32);
+    weight->n = models->n;
+
     for (int i = 0; i < models->n; i++) {
 	int N = index->data.U32[i];
@@ -209,7 +210,7 @@
 	y = model->params->data.F32[3];
 
-	psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "OR", PM_SOURCE_MASK_MARKED);
+	psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "OR", PM_MASK_MARK);
 	pmSourceChisq (model, Fi->pixels, Fi->mask, Fi->weight);
-	psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "AND", ~PM_SOURCE_MASK_MARKED);
+	psImageKeepCircle (Fi->mask, x, y, model->radiusTMP, "AND", NOT_U8(PM_MASK_MARK));
     }
 
