Index: trunk/psphot/src/psphotKronMasked.c
===================================================================
--- trunk/psphot/src/psphotKronMasked.c	(revision 31452)
+++ trunk/psphot/src/psphotKronMasked.c	(revision 31673)
@@ -1,5 +1,5 @@
 # include "psphotInternal.h"
 
-bool psphotKronMag (pmSource *source, float radius, psImageMaskType maskVal);
+bool psphotKronMag (pmSource *source, float radius, float minKronRadius, psImageMaskType maskVal);
 
 bool psphotKronMasked (pmConfig *config, const pmFPAview *view, const char *filerule)
@@ -65,4 +65,9 @@
     if (!status) {
         RADIUS = psMetadataLookupF32 (&status, recipe, "PSF_MOMENTS_RADIUS");
+    }
+
+    float MIN_KRON_RADIUS = psMetadataLookupF32 (&status, readout->analysis, "MOMENTS_MIN_KRON");
+    if (!status) {
+        MIN_KRON_RADIUS = 0.25*RADIUS;
     }
 
@@ -96,5 +101,5 @@
         }
 
-	psphotKronMag (source, RADIUS, maskVal);
+	psphotKronMag (source, RADIUS, MIN_KRON_RADIUS, maskVal);
 
         // re-subtract the object, leave local sky
@@ -138,5 +143,5 @@
 }
 
-bool psphotKronMag (pmSource *source, float radius, psImageMaskType maskVal) {
+bool psphotKronMag (pmSource *source, float radius, float minKronRadius, psImageMaskType maskVal) {
 
     PS_ASSERT_PTR_NON_NULL(source, false);
@@ -219,5 +224,8 @@
 
     // Saturate the 1st radial moment
-    float Mrf = MIN(radius, MAX(0.25*radius, RF/RS));
+    float Mrf = MAX(minKronRadius, RF/RS);
+    if (sqrt(source->peak->detValue) < 10.0) {
+	Mrf = MIN (radius, Mrf);
+    }
 
     // Calculate the Kron magnitude (make this block optional?)
@@ -263,6 +271,9 @@
 	}
     }
+
+    source->moments->Mrh = Mrf;
+
     // XXX for a test, save the old values here:
-    source->moments->KronCore    = source->moments->KronFlux;
+    source->moments->KronFouter    = source->moments->KronFlux;
     source->moments->KronCoreErr = source->moments->KronFluxErr;
 
