Index: /trunk/psphot/src/psphotGuessModels.c
===================================================================
--- /trunk/psphot/src/psphotGuessModels.c	(revision 11169)
+++ /trunk/psphot/src/psphotGuessModels.c	(revision 11170)
@@ -16,12 +16,30 @@
     if (source->type == PM_SOURCE_TYPE_SATURATED) continue;
 
+    // XXX if a source is faint, it will not have moments measured.
+    // it must be modelled as a PSF.  In this case, we need to use 
+    // the peak centroid to get the coordinates and get the peak flux 
+    // from the image?
+
     // use the source moments, etc to guess basic model parameters
     pmModel *modelEXT = pmSourceModelGuess (source, psf->type);
-    if (source->mode &  PM_SOURCE_MODE_SATSTAR) {
-      modelEXT->params->data.F32[PM_PAR_XPOS] = source->moments->x;
-      modelEXT->params->data.F32[PM_PAR_YPOS] = source->moments->y;
+    
+    // XXX put this in a function of its own..
+    if (modelEXT == NULL) {
+	modelEXT = pmModelAlloc(psf->type);
+	psF32 *PAR = modelEXT->params->data.F32;
+	PAR[PM_PAR_SKY]  = 0;
+	// XXX get this from the image pixels
+	PAR[PM_PAR_I0]   = source->peak->flux;
+	PAR[PM_PAR_XPOS] = source->peak->xf;
+	PAR[PM_PAR_YPOS] = source->peak->yf;
     } else {
-      modelEXT->params->data.F32[PM_PAR_XPOS] = source->peak->xf;
-      modelEXT->params->data.F32[PM_PAR_YPOS] = source->peak->yf;
+	// these valuse are set in pmSourceModelGuess, should this rule be in there as well?
+	if (source->mode &  PM_SOURCE_MODE_SATSTAR) {
+	    modelEXT->params->data.F32[PM_PAR_XPOS] = source->moments->x;
+	    modelEXT->params->data.F32[PM_PAR_YPOS] = source->moments->y;
+	} else {
+	    modelEXT->params->data.F32[PM_PAR_XPOS] = source->peak->xf;
+	    modelEXT->params->data.F32[PM_PAR_YPOS] = source->peak->yf;
+	}
     }
 
