Index: trunk/psphot/src/psphotSourceSize.c
===================================================================
--- trunk/psphot/src/psphotSourceSize.c	(revision 41537)
+++ trunk/psphot/src/psphotSourceSize.c	(revision 41705)
@@ -26,6 +26,6 @@
 bool psphotSourceSizePSF (psphotSourceSizeOptions *options, pmReadout *readout, psArray *sources, pmPSF *psf, psMetadata *recipe);
 bool psphotDynamicLimitsCR (psphotSourceSizeOptions *options, pmReadout *readout, psArray *sources, pmPSF *psf, psMetadata *recipe);
-bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options);
-bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options);
+bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config);
+bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config);
 bool psphotSourceSelectCR (pmReadout *readout, psArray *sources, psphotSourceSizeOptions *options);
 bool psphotMaskCosmicRay (pmReadout *readout, pmSource *source, psImageMaskType maskVal, int maxWindowCR);
@@ -162,5 +162,5 @@
     // classify the sources based on ApResid and Moments
     // NOTE: only sources not already measured !(source->tmpFlags & PM_SOURCE_TMPF_SIZE_MEASURED)
-    psphotSourceClass(readout, sources, recipe, psf, &options);
+    psphotSourceClass(readout, sources, recipe, psf, &options, config);
 
     // attempt to mask the candidate CRs; flag if CR nature is confirmed
@@ -403,5 +403,5 @@
 
 // classify sources based on the combination of psf-mag, Mxx, Myy
-bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options) {
+bool psphotSourceClass (pmReadout *readout, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config) {
 
     bool status;
@@ -411,5 +411,5 @@
     psLogMsg("psModules.objects", PS_LOG_INFO, "Source Size classifications: %4s %4s %4s %4s %4s", "Npsf", "Next", "Nsat", "Ncr", "Nskip");
 
-    if (!psphotSourceClassRegion (NULL, &psfClump, sources, recipe, psf, options)) {
+    if (!psphotSourceClassRegion (NULL, &psfClump, sources, recipe, psf, options, config)) {
 	psLogMsg ("psphot", 4, "Failed to determine source classification for full image\n");
     } else {
@@ -439,5 +439,5 @@
         }
 
-        if (!psphotSourceClassRegion (region, &psfClump, sources, recipe, psf, options)) {
+        if (!psphotSourceClassRegion (region, &psfClump, sources, recipe, psf, options, config)) {
             psLogMsg ("psphot", 4, "Failed to determine source classification for region %f,%f - %f,%f\n", region->x0, region->y0, region->x1, region->y1);
             continue;
@@ -450,5 +450,5 @@
 }
 
-bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options) {
+bool psphotSourceClassRegion (psRegion *region, pmPSFClump *psfClump, psArray *sources, psMetadata *recipe, pmPSF *psf, psphotSourceSizeOptions *options, pmConfig *config) {
 
     PS_ASSERT_PTR_NON_NULL(sources, false);
@@ -461,6 +461,8 @@
     int Nskip = 0;
 
+    //initiallise mask values to use later on
+    pmSourceMagnitudesInit (config, recipe);
+
     pmSourceMode noMoments = PM_SOURCE_MODE_MOMENTS_FAILURE | PM_SOURCE_MODE_SKYVAR_FAILURE | PM_SOURCE_MODE_SKY_FAILURE | PM_SOURCE_MODE_BELOW_MOMENTS_SN;
-
     // request the pixWeight values as well as the magnitudes
     pmSourcePhotometryMode photMode = PM_SOURCE_PHOT_WEIGHT; 
@@ -502,4 +504,5 @@
             source->mode |= PM_SOURCE_MODE_SIZE_SKIPPED;
             psTrace("psphot", 7, "Not calculating source size since source is not subtracted\n");
+            pmSourceMaskEval (source,  source->maskObj, maskVal);
             Nskip ++;
             continue;
@@ -512,4 +515,5 @@
         psAssert (source->moments, "why is this source missing moments?");
         if (source->mode & noMoments) {
+            pmSourceMaskEval (source,  source->maskObj, maskVal);
             Nskip ++;
             continue;
