Index: trunk/ppStack/src/ppStackConvolve.c
===================================================================
--- trunk/ppStack/src/ppStackConvolve.c	(revision 28181)
+++ trunk/ppStack/src/ppStackConvolve.c	(revision 28182)
@@ -235,8 +235,11 @@
 
     if (numGood == 0) {
-        psError(PPSTACK_ERR_REJECTED, false, "No good images to combine.");
+        options->quality = PPSTACK_ERR_REJECTED;
+        psErrorStackPrint(stderr, "No good images survived convolution stage.");
+        psErrorClear();
+        psWarning("No good images survived convolution stage.");
         psFree(fpaList);
         psFree(cellList);
-        return false;
+        return true;
     }
 
@@ -324,6 +327,9 @@
 
     if (numGood == 0) {
-        psError(PPSTACK_ERR_REJECTED, false, "No good images to combine.");
-        return false;
+        options->quality = PPSTACK_ERR_REJECTED;
+        psErrorStackPrint(stderr, "No good images survived convolution stage.");
+        psErrorClear();
+        psWarning("No good images survived convolution stage.");
+        return true;
     }
 
Index: trunk/ppStack/src/ppStackLoop.c
===================================================================
--- trunk/ppStack/src/ppStackLoop.c	(revision 28181)
+++ trunk/ppStack/src/ppStackLoop.c	(revision 28182)
@@ -91,4 +91,9 @@
     ppStackMemDump("convolve");
 
+    if (options->quality) {
+        // Can't do anything else
+        return true;
+    }
+
     // Ensure sufficient inputs
     {
@@ -97,6 +102,9 @@
         bool safe = psMetadataLookupBool(NULL, recipe, "SAFE"); // Be safe when combining
         if (safe && numGood <= 1) {
-            psError(PPSTACK_ERR_REJECTED, true, "Insufficient inputs for combination with safety on");
-            return false;
+            options->quality = PPSTACK_ERR_REJECTED;
+            psErrorStackPrint(stderr, "Insufficient inputs for combination with safety on");
+            psErrorClear();
+            psWarning("Insufficient inputs for combination with safety on");
+            return true;
         }
     }
@@ -147,6 +155,9 @@
         int numGood = stackSummary(options, "final combination");
         if (numGood <= 0) {
-            psError(PPSTACK_ERR_REJECTED, true, "Insufficient inputs for combination");
-            return false;
+            options->quality = PPSTACK_ERR_REJECTED;
+            psErrorStackPrint(stderr, "Insufficient inputs survived rejection stage");
+            psErrorClear();
+            psWarning("Insufficient inputs survived rejection stage");
+            return true;
         }
     }
Index: trunk/ppStack/src/ppStackReject.c
===================================================================
--- trunk/ppStack/src/ppStackReject.c	(revision 28181)
+++ trunk/ppStack/src/ppStackReject.c	(revision 28182)
@@ -166,9 +166,4 @@
     psFree(options->inspect); options->inspect = NULL;
 
-    if (numRejected >= num) {
-        psError(PPSTACK_ERR_REJECTED, true, "All inputs completely rejected; unable to proceed.");
-        return false;
-    }
-
     if (options->stats) {
         psMetadataAddS32(options->stats, PS_LIST_TAIL, "REJECT_IMAGES", 0,
