Index: trunk/ppStack/src/ppStackTarget.c
===================================================================
--- trunk/ppStack/src/ppStackTarget.c	(revision 28256)
+++ trunk/ppStack/src/ppStackTarget.c	(revision 28301)
@@ -164,8 +164,31 @@
 
         psStats *bg = psStatsAlloc(PS_STAT_ROBUST_MEDIAN); // Statistics for background
+        float mean = NAN;                                  // Measured mean variance
         if (!psImageBackground(bg, NULL, variance, mask, maskVal, rng)) {
-            psError(PPSTACK_ERR_DATA, false, "Can't measure background for image.");
-            psFree(rng);
-            return NULL;
+            psErrorClear();
+            // Retry using all the available pixels
+            bg->nSubsample = variance->numCols * variance->numRows + 1;
+            if (!psImageStats(bg, variance, mask, maskVal)) {
+                psLogMsg("ppStack", PS_LOG_DETAIL,
+                         "Couldn't measure mean variance for image %d; retrying.", i);
+                psErrorClear();
+                // Retry with desperate statistic
+                bg->options = PS_STAT_SAMPLE_MEAN;
+                if (!psImageStats(bg, variance, mask, maskVal)) {
+                    psError(PPSTACK_ERR_DATA, false, "Unable to measure mean variance for image %d", i);
+                    psFree(rng);
+                    psFree(bg);
+                    return NULL;
+                } else {
+                    // Desperate retry
+                    mean = bg->sampleMean;
+                }
+            } else {
+                // Retry with all available pixels
+                mean = bg->robustMedian;
+            }
+        } else {
+            // First attempt
+            mean = bg->robustMedian;
         }
 
