Index: /trunk/psphot/src/psphotBlendFit.c
===================================================================
--- /trunk/psphot/src/psphotBlendFit.c	(revision 42086)
+++ /trunk/psphot/src/psphotBlendFit.c	(revision 42087)
@@ -71,40 +71,42 @@
     }
 
-    // source fitting parameters for extended source fits
-    int fitIter = psMetadataLookupS32(&status, recipe, "EXT_FIT_ITER"); // Max number of fit iterations
-    assert (status && fitIter > 0);
-
-    float fitMinTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MIN_TOL"); // Fit tolerance
-    if (!status || !isfinite(fitMinTol) || fitMinTol <= 0) {
-	fitMinTol = psMetadataLookupF32 (&status, recipe, "PSF_FIT_TOL"); // Fit tolerance
-	if (!status || !isfinite(fitMinTol) || fitMinTol <= 0) {
+    // Define source fitting parameters for extended source fits
+    pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc();
+
+    fitOptions->mode          = PM_SOURCE_FIT_PSF;
+
+    fitOptions->covarFactor   = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix
+
+    fitOptions->nIter         = psMetadataLookupS32(&status, recipe, "EXT_FIT_ITER"); // Max number of fit iterations
+    assert (status && fitOptions->nIter > 0); 
+
+    fitOptions->minTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MIN_TOL"); // Fit tolerance
+    if (!status || !isfinite(fitOptions->minTol) || fitOptions->minTol <= 0) {
+	fitOptions->minTol = psMetadataLookupF32 (&status, recipe, "PSF_FIT_TOL"); // Fit tolerance
+	if (!status || !isfinite(fitOptions->minTol) || fitOptions->minTol <= 0) {
 	    psAbort("PSF_FIT_MIN_TOL (and PSF_FIT_TOL) not defined or positive");
 	}
     }
 
-    float fitMaxTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_TOL"); // Fit tolerance
-    if (!status || !isfinite(fitMaxTol) || fitMaxTol <= 0) {
-	fitMaxTol = 1.0;
-    }
-
-    bool chisqConvergence = psMetadataLookupBool (&status, recipe, "LMM_FIT_CHISQ_CONVERGENCE"); // Fit tolerance
-    if (!status) {
-	// default to the old method (chisqConvergence)
-	chisqConvergence = true;
-    }
-
-    int gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance
-    if (!status) {
-	// default to the old method (chisqConvergence)
-	gainFactorMode = 0;
-    }
-
-    bool poisson = psMetadataLookupBool(&status, recipe, "POISSON.ERRORS.PHOT.LMM"); // Poisson errors?
+    fitOptions->maxTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_TOL"); // Fit tolerance
+    if (!status || !isfinite(fitOptions->maxTol) || fitOptions->maxTol <= 0) { fitOptions->maxTol = 1.0; }
+
+    fitOptions->chisqConvergence = psMetadataLookupBool (&status, recipe, "LMM_FIT_CHISQ_CONVERGENCE"); // Fit tolerance
+    if (!status) { fitOptions->chisqConvergence = true; } // default to the old method (chisqConvergence)
+
+    fitOptions->useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
+    if (!status) { fitOptions->useReweighting = false; }
+
+    fitOptions->gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance
+    if (!status) { fitOptions->gainFactorMode = 0; } // default to the old method
+
+    fitOptions->poissonErrors = psMetadataLookupBool(&status, recipe, "POISSON.ERRORS.PHOT.LMM"); // Poisson errors?
     assert (status);
 
-    float maxChisqDOF = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_CHISQ"); // Fit tolerance
+    fitOptions->maxChisqDOF = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_CHISQ"); // Fit tolerance
 
     float skySig = psMetadataLookupF32(&status, recipe, "SKY_SIG");
     assert (status && isfinite(skySig) && skySig > 0);
+    fitOptions->weight = PS_SQR(skySig);
 
 # if (0)
@@ -120,18 +122,4 @@
     psphotSaveImage (NULL, IDimage, "idimage.fits");
 # endif
-
-    // Define source fitting parameters for extended source fits
-    pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc();
-    fitOptions->nIter         = fitIter;
-    fitOptions->minTol        = fitMinTol;
-    fitOptions->maxTol        = fitMaxTol;
-    fitOptions->maxChisqDOF   = maxChisqDOF;
-    fitOptions->poissonErrors = poisson;
-    fitOptions->weight        = PS_SQR(skySig);
-    fitOptions->mode          = PM_SOURCE_FIT_PSF;
-    fitOptions->covarFactor   = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix
-
-    fitOptions->gainFactorMode = gainFactorMode;
-    fitOptions->chisqConvergence = chisqConvergence;
 
     psphotInitLimitsPSF (recipe, readout);
Index: /trunk/psphot/src/psphotChoosePSF.c
===================================================================
--- /trunk/psphot/src/psphotChoosePSF.c	(revision 42086)
+++ /trunk/psphot/src/psphotChoosePSF.c	(revision 42087)
@@ -164,4 +164,9 @@
 	// default to the old method (chisqConvergence)
 	chisqConvergence = true;
+    }
+
+    bool useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
+    if (!status) {
+	useReweighting = false;
     }
 
@@ -185,4 +190,5 @@
     options->fitOptions->gainFactorMode   = gainFactorMode;
     options->fitOptions->chisqConvergence = chisqConvergence;
+    options->fitOptions->useReweighting   = useReweighting;
 
     psArray *stars = psArrayAllocEmpty (sources->n);
Index: /trunk/psphot/src/psphotExtendedSourceFits.c
===================================================================
--- /trunk/psphot/src/psphotExtendedSourceFits.c	(revision 42086)
+++ /trunk/psphot/src/psphotExtendedSourceFits.c	(revision 42087)
@@ -120,4 +120,9 @@
 	// default to the old method (chisqConvergence)
 	chisqConvergence = true;
+    }
+
+    bool useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
+    if (!status) {
+	useReweighting = false;
     }
 
@@ -145,4 +150,5 @@
     fitOptions->chisqConvergence = chisqConvergence;
     fitOptions->isInteractive    = isInteractive;
+    fitOptions->useReweighting   = useReweighting;
 
     // use poissonian errors or local-sky errors
Index: /trunk/psphot/src/psphotModelTestReadout.c
===================================================================
--- /trunk/psphot/src/psphotModelTestReadout.c	(revision 42086)
+++ /trunk/psphot/src/psphotModelTestReadout.c	(revision 42087)
@@ -222,4 +222,8 @@
     fitOptions->chisqConvergence = chisqConvergence;
 
+    bool useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
+    if (!status) useReweighting = true;
+    fitOptions->useReweighting = useReweighting;
+
     int gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance
     if (!status) gainFactorMode = 0;
