Index: trunk/psphot/src/psphotOutput.c
===================================================================
--- trunk/psphot/src/psphotOutput.c	(revision 5049)
+++ trunk/psphot/src/psphotOutput.c	(revision 5058)
@@ -2,5 +2,5 @@
 
 // output functions: we have several fixed modes (sx, obj, cmp)
-void psphotOutput (eamReadout *imdata, psMetadata *config, psArray *sources) {
+void psphotOutput (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky) {
 
     bool status;
@@ -21,25 +21,25 @@
     }
     if (!strcasecmp (outputMode, "TEXT")) {
-	pmSourcesWriteText (imdata, outputFile, sources);
+	pmSourcesWriteText (imdata, outputFile, sources, psf, sky);
 	return;
     }
 
     if (!strcasecmp (outputMode, "OBJ")) {
-	pmSourcesWriteOBJ (imdata, outputFile, sources);
+	pmSourcesWriteOBJ (imdata, outputFile, sources, psf, sky);
 	return;
     }
   
     if (!strcasecmp (outputMode, "SX")) {
-	pmSourcesWriteSX (imdata, outputFile, sources);
+	pmSourcesWriteSX (imdata, outputFile, sources, psf, sky);
 	return;
     }
   
     if (!strcasecmp (outputMode, "CMP")) {
-	pmSourcesWriteCMP (imdata, outputFile, sources);
+	pmSourcesWriteCMP (imdata, outputFile, sources, psf, sky);
 	return;
     }
   
     if (!strcasecmp (outputMode, "CMF")) {
-	pmSourcesWriteCMF (imdata, outputFile, sources);
+	pmSourcesWriteCMF (imdata, outputFile, sources, psf, sky);
 	return;
     }
@@ -47,5 +47,5 @@
 }
 
-bool pmSourcesWriteText (eamReadout *imdata, char *filename, psArray *sources) {
+bool pmSourcesWriteText (eamReadout *imdata, char *filename, psArray *sources, pmPSF *psf, psStats *sky) {
 
     char *name = (char *) psAlloc (strlen(filename) + 10);
@@ -68,10 +68,10 @@
 
 // dophot-style output list with fixed line width
-bool pmSourcesWriteOBJ (eamReadout *imdata, char *filename, psArray *sources) {
+bool pmSourcesWriteOBJ (eamReadout *imdata, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
 
     int i, type, status;
     pmModel *model;
     psF32 *PAR, *dPAR;
-    float sky, dmag, apMag, fitMag;
+    float skyFlux, dmag, apMag, fitMag;
 
     psLine *line = psLineAlloc (104);  // 104 is dophot-defined line length
@@ -118,5 +118,5 @@
 
 	// save local sky for later
-	sky = model->params->data.F32[0];
+	skyFlux = model->params->data.F32[0];
 
 	// replace source flux
@@ -124,8 +124,9 @@
 	model->params->data.F32[0] = 0;
 	pmSourceAddModel (source->pixels, source->mask, model, false);
-	model->params->data.F32[0] = sky;
+	model->params->data.F32[0] = skyFlux;
 
 	// measure object photometry
 	status = pmSourcePhotometry (&fitMag, &apMag, model, source->pixels, source->mask);
+	fitMag += psf->ApResid;
 
 	// subtract object, leave local sky
@@ -133,5 +134,5 @@
 	model->params->data.F32[0] = 0;
 	pmSourceSubModel (source->pixels, source->mask, model, false);
-	model->params->data.F32[0] = sky;
+	model->params->data.F32[0] = skyFlux;
 
 	if (status == FALSE) continue;
@@ -159,5 +160,5 @@
 
 // elixir/sextractor-style output list with fixed line width
-bool pmSourcesWriteSX (eamReadout *imdata, char *filename, psArray *sources) {
+bool pmSourcesWriteSX (eamReadout *imdata, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
 
     int i, status, flags;
@@ -224,4 +225,5 @@
 	// measure object photometry
 	status = pmSourcePhotometry (&fitMag, &apMag, model, source->pixels, source->mask);
+	fitMag += psf->ApResid;
 
 	// subtract object, leave local sky
@@ -257,5 +259,5 @@
 
 // elixir-style pseudo FITS table (header + ascii list)
-bool pmSourcesWriteCMP (eamReadout *imdata, char *filename, psArray *sources) {
+bool pmSourcesWriteCMP (eamReadout *imdata, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
 
     int i, type, status;
@@ -328,4 +330,5 @@
 	// measure object photometry
 	status = pmSourcePhotometry (&fitMag, &apMag, model, source->pixels, source->mask);
+	fitMag += psf->ApResid;
 
 	// subtract object, leave local sky
@@ -360,5 +363,5 @@
 
 // elixir-style FITS table output (header + table in 1st extension)
-bool pmSourcesWriteCMF (eamReadout *imdata, char *filename, psArray *sources) {
+bool pmSourcesWriteCMF (eamReadout *imdata, char *filename, psArray *sources, pmPSF *psf, psStats *skyStats) {
 
     // write imdata->header to file
