Index: /branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceIO_CFF.c
===================================================================
--- /branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceIO_CFF.c	(revision 36208)
+++ /branches/eam_branches/ipp-20130904/psModules/src/objects/pmSourceIO_CFF.c	(revision 36209)
@@ -94,15 +94,16 @@
 	float X          = psMetadataLookupF32 (&status, row, "X");
 	float Y          = psMetadataLookupF32 (&status, row, "Y");
-
-        float apRadius   = psMetadataLookupS32 (&status, row, "AP_RADIUS");
+        float flux       = psMetadataLookupF32 (&status, row, "FLUX"); // guess at the instrumental flux
+
+        float apRadius   = psMetadataLookupF32 (&status, row, "AP_RADIUS");
         float kronRadius = psMetadataLookupF32 (&status, row, "KRON_RADIUS");
-        float petRadius  = psMetadataLookupU32 (&status, row, "PETRO_RADIUS");
-        bool fitGalaxy   = psMetadataLookupU32 (&status, row, "FIT_GALAXY");
-        bool psfStar     = psMetadataLookupU32 (&status, row, "PSF_STAR");
-
-        float Rmajor     = psMetadataLookupU32 (&status, row, "R_MAJOR");
-        float Rminor     = psMetadataLookupU32 (&status, row, "R_MINOR");
-        float theta      = psMetadataLookupU32 (&status, row, "THETA");
-        float Sindex     = psMetadataLookupU32 (&status, row, "INDEX");
+        float petRadius  = psMetadataLookupF32 (&status, row, "PETRO_RADIUS");
+        bool fitGalaxy   = psMetadataLookupU8 (&status, row, "FIT_GALAXY");
+        bool psfStar     = psMetadataLookupU8 (&status, row, "PSF_STAR");
+
+        float Rmajor     = psMetadataLookupF32 (&status, row, "R_MAJOR");
+        float Rminor     = psMetadataLookupF32 (&status, row, "R_MINOR");
+        float theta      = psMetadataLookupF32 (&status, row, "THETA");
+        float Sindex     = psMetadataLookupF32 (&status, row, "INDEX");
 
         pmSource *source = pmSourceAlloc ();
@@ -149,12 +150,10 @@
 	pmPSF_AxesToModel (PAR, axes, modelType);
 
-	float peakFlux    = 1.0;
-        source->peak      = pmPeakAlloc(X, Y, peakFlux, PM_PEAK_LONE);
-        source->peak->xf  = X; // more accurate position
-        source->peak->yf  = Y; // more accurate position
+	// peak->detValue, rawFlux, smoothFlux are all set to the flux argument
+        source->peak      = pmPeakAlloc(X, Y, flux, PM_PEAK_LONE);
+        source->peak->xf  = X; // pmPeakAlloc converts X,Y to int, so reset here
+        source->peak->yf  = Y; // pmPeakAlloc converts X,Y to int, so reset here
         source->peak->dx  = 0.0;
         source->peak->dy  = 0.0;
-        source->peak->rawFlux = peakFlux;
-        source->peak->smoothFlux = peakFlux;
 
         source->moments = pmMomentsAlloc ();
@@ -172,5 +171,5 @@
         if (fitGalaxy) {
             source->modelFits = psArrayAllocEmpty (1);
-	    pmModel *model = pmModelAlloc(modelType);
+	    pmModel *model = pmModelAlloc(galaxyModelType);
 	    psF32 *xPAR = model->params->data.F32;
 
@@ -185,5 +184,5 @@
 	    galaxyAxes.theta = theta; // XXX degrees or radians?
 
-	    pmPSF_AxesToModel (PAR, galaxyAxes, galaxyModelType);
+	    pmPSF_AxesToModel (xPAR, galaxyAxes, galaxyModelType);
 	    if (model->params->n > 7) {
 	      xPAR[PM_PAR_7] = Sindex;
