Index: branches/eam_branches/ipp-20130904/psModules/src/objects/models/pmModel_DEV.c
===================================================================
--- branches/eam_branches/ipp-20130904/psModules/src/objects/models/pmModel_DEV.c	(revision 36314)
+++ branches/eam_branches/ipp-20130904/psModules/src/objects/models/pmModel_DEV.c	(revision 36320)
@@ -269,5 +269,6 @@
 
     // Mxx, Mxy, Myy define the elliptical shape, but Mrf defines the width 
-    float scale = moments->Mrf / axes.major;
+    // the factor of 2.3 comes from Table 1 of Graham and Driver (2005)
+    float scale = moments->Mrf / axes.major / 2.3;
     axes.major *= scale;
     axes.minor *= scale;
Index: branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCM_MinimizeChisq.c
===================================================================
--- branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCM_MinimizeChisq.c	(revision 36314)
+++ branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCM_MinimizeChisq.c	(revision 36320)
@@ -135,5 +135,5 @@
 	}
 
-	if (0) {
+	if (1) {
 	    fprintf (stderr, "%d : ", min->iter);
 	    for (int ti = 0; ti < params->n; ti++) {
Index: branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCMdata.c
===================================================================
--- branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCMdata.c	(revision 36314)
+++ branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCMdata.c	(revision 36320)
@@ -43,5 +43,4 @@
 
 # define USE_DELTA_PSF 0
-# define KERNEL_NSIGMA 5.0
 
 // TEST: factor to increase the convolution sigma. psphot modifies this global variable.
@@ -108,5 +107,5 @@
     // convolution with a Gaussian approximation to the kernel
     pcm->use1Dgauss = false;
-    pcm->nsigma = KERNEL_NSIGMA; 
+    pcm->nsigma = NAN; // this is set to something defined by the user
     pcm->sigma = 1.0; // this should be set to something sensible when the psf is known
 
@@ -414,4 +413,5 @@
 
     pcm->poissonErrors = fitOptions->poissonErrors;
+    pcm->nsigma = fitOptions->nsigma;
 
     pcm->nPix = nPix;
@@ -538,5 +538,5 @@
 
 // construct a realization of the source model
-bool pmPCMCacheModel (pmSource *source, psImageMaskType maskVal, int psfSize) {
+bool pmPCMCacheModel (pmSource *source, psImageMaskType maskVal, int psfSize, float nsigma) {
 
     PS_ASSERT_PTR_NON_NULL(source, false);
@@ -560,9 +560,9 @@
 
 	if (USE_1D_CACHE) {
-	    psImageSmoothCacheData *smdata = psImageSmoothCacheSetKernel (&sigma, &kappa, KERNEL_NSIGMA, source->modelFlux, source->modelPSF);
+	    psImageSmoothCacheData *smdata = psImageSmoothCacheSetKernel (&sigma, &kappa, nsigma, source->modelFlux, source->modelPSF);
 	    psImageSmoothCache_F32 (source->modelFlux, smdata);
 	    psFree (smdata);
 	} else {
-	    psImageSmooth2dCacheData *smdata = psImageSmooth2dCacheSetKernel (&sigma, &kappa, KERNEL_NSIGMA, source->modelFlux, source->modelPSF);
+	    psImageSmooth2dCacheData *smdata = psImageSmooth2dCacheSetKernel (&sigma, &kappa, nsigma, source->modelFlux, source->modelPSF);
 	    psImageSmooth2dCache_F32 (source->modelFlux, smdata);
 	    psFree (smdata);
@@ -588,5 +588,5 @@
 
 // construct a realization of the source model
-bool pmPCMMakeModel (pmSource *source, pmModel *model, psImageMaskType maskVal, int psfSize) {
+bool pmPCMMakeModel (pmSource *source, pmModel *model, float Nsigma, psImageMaskType maskVal, int psfSize) {
 
     PS_ASSERT_PTR_NON_NULL(source, false);
@@ -607,9 +607,9 @@
 
 	if (USE_1D_CACHE) {
-	    psImageSmoothCacheData *smdata = psImageSmoothCacheSetKernel (&sigma, &kappa, KERNEL_NSIGMA, source->modelFlux, source->modelPSF);
+	    psImageSmoothCacheData *smdata = psImageSmoothCacheSetKernel (&sigma, &kappa, Nsigma, source->modelFlux, source->modelPSF);
 	    psImageSmoothCache_F32 (source->modelFlux, smdata);
 	    psFree (smdata);
 	} else {
-	    psImageSmooth2dCacheData *smdata = psImageSmooth2dCacheSetKernel (&sigma, &kappa, KERNEL_NSIGMA, source->modelFlux, source->modelPSF);
+	    psImageSmooth2dCacheData *smdata = psImageSmooth2dCacheSetKernel (&sigma, &kappa, Nsigma, source->modelFlux, source->modelPSF);
 	    psImageSmooth2dCache_F32 (source->modelFlux, smdata);
 	    psFree (smdata);
Index: branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCMdata.h
===================================================================
--- branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCMdata.h	(revision 36314)
+++ branches/eam_branches/ipp-20130904/psModules/src/objects/pmPCMdata.h	(revision 36320)
@@ -105,7 +105,7 @@
 bool pmSourceFitPCM (pmPCMdata *pcm, pmSource *source, pmSourceFitOptions *fitOptions, psImageMaskType maskVal, psImageMaskType markVal, int psfSize);
 
-bool pmPCMCacheModel (pmSource *source, psImageMaskType maskVal, int psfSize);
+bool pmPCMCacheModel (pmSource *source, psImageMaskType maskVal, int psfSize, float nsigma);
 
-bool pmPCMMakeModel (pmSource *source, pmModel *model, psImageMaskType maskVal, int psfSize);
+bool pmPCMMakeModel (pmSource *source, pmModel *model, float Nsigma, psImageMaskType maskVal, int psfSize);
 
 /// @}
Index: branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitModel.c
===================================================================
--- branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitModel.c	(revision 36314)
+++ branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitModel.c	(revision 36320)
@@ -59,4 +59,5 @@
     opt->maxTol = 1.00;
     opt->weight = 1.00;
+    opt->nsigma = 5.00;
     opt->maxChisqDOF = NAN;
     opt->poissonErrors = true;
Index: branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitModel.h
===================================================================
--- branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitModel.h	(revision 36314)
+++ branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitModel.h	(revision 36320)
@@ -34,4 +34,5 @@
     float weight;			///< use this weight for constant-weight fits
     float covarFactor;			///< covariance factor for calculating the chisq
+    float nsigma;                       ///< how far out to convolve
     bool poissonErrors;			///< use poisson errors for fits?
     bool saveCovariance;
Index: branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitPCM.c
===================================================================
--- branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitPCM.c	(revision 36314)
+++ branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceFitPCM.c	(revision 36320)
@@ -115,5 +115,5 @@
     } else {
 	// xxx this is wrong because it does not convolve with the psf
-	pmPCMMakeModel (source, pcm->modelConv, maskVal, psfSize);
+	pmPCMMakeModel (source, pcm->modelConv, pcm->nsigma, maskVal, psfSize);
 	pmSourceChisqModelFlux (source, pcm->modelConv, maskVal);
     }
