Index: trunk/ppSim/src/ppSimInsertStars.c
===================================================================
--- trunk/ppSim/src/ppSimInsertStars.c	(revision 36868)
+++ trunk/ppSim/src/ppSimInsertStars.c	(revision 41331)
@@ -41,14 +41,9 @@
     }
 
-    float skyRate = psMetadataLookupF32(NULL, recipe, "SKY.RATE"); // Sky rate
-    if (isnan(skyRate)) {
-        float zp      = psMetadataLookupF32(&mdok, recipe, "ZEROPOINT"); assert (mdok);
-        float scale   = psMetadataLookupF32(&mdok, recipe, "PIXEL.SCALE");     assert (mdok);
-        float skyMags = psMetadataLookupF32(&mdok, recipe, "SKY.MAGS");  assert (mdok);
-        skyRate = scale * scale * ppSimMagToFlux (skyMags, zp);
-    }
+    float skyRate = ppSimGetSkyRate (recipe);
 
     // Rough noise estimate, appropriate for entire cell (use for source radius?)
     float roughNoise = sqrtf(PS_SQR(readnoise) + (darkRate + skyRate) * expTime);
+    float skyFlux = skyRate*expTime;
 
     int x0Chip = psMetadataLookupS32(NULL, chip->concepts, "CHIP.X0");
@@ -165,4 +160,7 @@
 	fprintf (outfile, "%8.3f %8.3f %10.5f  %2d  %7.3f %5.3f  %5.3f %5.3f %5.3f %5.3f  :  %f %f\n", star->x, star->y, starFlux, 0, source->psfMag, source->psfMagErr, axes.major, axes.minor, axes.theta, par8, model->params->data.F32[PM_PAR_I0], radius);
 
+	// save the approx sky (exact if sky is flat) for external comparisons
+	source->sky = skyFlux;
+
 	// add the sources to the source array
 	psArrayAdd (sources, 100,source);
