Index: branches/eam_branches/20091201/psphot/src/psphotReadoutMinimal.c
===================================================================
--- branches/eam_branches/20091201/psphot/src/psphotReadoutMinimal.c	(revision 26646)
+++ branches/eam_branches/20091201/psphot/src/psphotReadoutMinimal.c	(revision 26648)
@@ -54,12 +54,27 @@
         return psphotReadoutCleanup (config, readout, recipe, detections, psf, NULL);
     }
+#if 0
     if (!detections->peaks->n) {
         psLogMsg ("psphot", 3, "unable to find detections in this image");
         return psphotReadoutCleanup (config, readout, recipe, detections, psf, NULL);
     }
+#endif
 
     // construct sources and measure basic stats
     psArray *sources = psphotSourceStats (config, readout, detections, false);
     if (!sources) return false;
+
+    // Do the efficiency before everything else, to ensure it's done
+    if (!psphotEfficiency(config, readout, view, psf, recipe, sources)) {
+        psErrorStackPrint(stderr, "Unable to determine detection efficiencies from fake sources");
+        psErrorClear();
+    }
+
+    if (detections->peaks->n == 0 || sources->n == 0) {
+        psLogMsg ("psphot", 3, "unable to find detections in this image");
+        return psphotReadoutCleanup (config, readout, recipe, detections, psf, NULL);
+    }
+
+
 
     // find blended neighbors of very saturated stars
@@ -103,9 +118,4 @@
     psphotMagnitudes(config, readout, view, sources, psf);
 
-    if (!psphotEfficiency(config, readout, view, psf, recipe, sources)) {
-        psErrorStackPrint(stderr, "Unable to determine detection efficiencies from fake sources");
-        psErrorClear();
-    }
-
     // drop the references to the image pixels held by each source
     psphotSourceFreePixels (sources);
