Index: branches/eam_branches/ipp-20110404/ppStack/src/ppStackArguments.c
===================================================================
--- branches/eam_branches/ipp-20110404/ppStack/src/ppStackArguments.c	(revision 31166)
+++ branches/eam_branches/ipp-20110404/ppStack/src/ppStackArguments.c	(revision 31442)
@@ -204,5 +204,5 @@
 	}
         psArgumentRemove (argNum, &argc, argv);
-	if (strcasecmp(argv[argNum], "NIGHTLY") && strcasecmp(argv[argNum], "DEEP") && strcasecmp(argv[argNum], "BEST_IQ")) {
+	if (strcasecmp(argv[argNum], "NIGHTLY_STACK") && strcasecmp(argv[argNum], "DEEP_STACK") && strcasecmp(argv[argNum], "IQ_STACK")) {
 	    psErrorStackPrint(stderr, "Invalid option for -stack-type %s (must be one of NIGHTLY_STACK, DEEP_STACK, IQ_STACK)", argv[argNum]);
 	    exit(PS_EXIT_CONFIG_ERROR);
Index: branches/eam_branches/ipp-20110404/ppStack/src/ppStackCombineFinal.c
===================================================================
--- branches/eam_branches/ipp-20110404/ppStack/src/ppStackCombineFinal.c	(revision 31166)
+++ branches/eam_branches/ipp-20110404/ppStack/src/ppStackCombineFinal.c	(revision 31442)
@@ -1,5 +1,6 @@
 #include "ppStack.h"
 
-//#define TESTING                         // Enable test output
+// This is the doomsday switch.
+// #define TESTING                         // Enable test output
 
 bool ppStackCombineFinal(ppStackThreadData *stack, psArray *covariances, ppStackOptions *options,
@@ -29,9 +30,4 @@
             reject->data[i] = pmStackRejectGrow(options->rejected->data[i], numCols, numRows, poorFrac,
                                                 options->regions->data[i], options->kernels->data[i]);
-            if (!reject->data[i]) {
-                psError(psErrorCodeLast(), false, "Unable to grow rejected pixels for image %d", i);
-                psFree(reject);
-                return false;
-            }
         } else {
             reject->data[i] = psMemIncrRefCounter(options->rejected->data[i]);
Index: branches/eam_branches/ipp-20110404/ppStack/src/ppStackCombineInitial.c
===================================================================
--- branches/eam_branches/ipp-20110404/ppStack/src/ppStackCombineInitial.c	(revision 31166)
+++ branches/eam_branches/ipp-20110404/ppStack/src/ppStackCombineInitial.c	(revision 31442)
@@ -1,5 +1,6 @@
 #include "ppStack.h"
 
-//#define TESTING                         // Enable test output
+// This is the doomsday switch.
+// #define TESTING                         // Enable test output
 
 bool ppStackCombineInitial(ppStackThreadData *stack, ppStackOptions *options, pmConfig *config)
@@ -9,9 +10,9 @@
     psAssert(config, "Require configuration");
 
-    if (!options->convolve) {
-        // No need to do initial combination when we haven't convolved
-        // XXX either allocate inspect and rejected here, or do not require them downstream
-        return true;
-    }
+/*     if (!options->convolve) { */
+/*         // No need to do initial combination when we haven't convolved */
+/*         // XXX either allocate inspect and rejected here, or do not require them downstream */
+/*         return true; */
+/*     } */
 
     psTimerStart("PPSTACK_INITIAL");
Index: branches/eam_branches/ipp-20110404/ppStack/src/ppStackLoop.c
===================================================================
--- branches/eam_branches/ipp-20110404/ppStack/src/ppStackLoop.c	(revision 31166)
+++ branches/eam_branches/ipp-20110404/ppStack/src/ppStackLoop.c	(revision 31442)
@@ -115,11 +115,30 @@
     // Final combination.  This one does NOT need to be normalized since the convolution takes care of that
     psTrace("ppStack", 2, "Final stack of convolved images....\n");
-    if (!ppStackCombineFinal(stack, options->convCovars, options, config, false, false, true)) {
+    if (options->convolve) {
+      if (!ppStackCombineFinal(stack, options->convCovars, options, config, false, false, true)) {
         psError(psErrorCodeLast(), false, "Unable to perform final combination.");
         psFree(stack);
         return false;
-    }
+      }
+    }
+    else {
+      // Since we haven't convolved, I believe we do need to normalize here.
+      if (!ppStackCombineFinal(stack, options->convCovars, options, config, false, true, true)) {
+        psError(psErrorCodeLast(), false, "Unable to perform final combination.");
+        psFree(stack);
+        return false;
+      }
+    }
+      
     psLogMsg("ppStack", PS_LOG_INFO, "Stage 5: Final Stack: %f sec", psTimerClear("PPSTACK_STEPS"));
     ppStackMemDump("final");
+
+    // Update Header
+    // Do this before performing photometry so that the cmf header gets all of the information.
+    if (!ppStackUpdateHeader(stack, options, config)) {
+        psError(psErrorCodeLast(), false, "Unable to update header.");
+        psFree(stack);
+        return false;
+    }
 
     // Photometry
@@ -132,10 +151,4 @@
     ppStackMemDump("photometry");
 
-    // Update Header
-    if (!ppStackUpdateHeader(stack, options, config)) {
-        psError(psErrorCodeLast(), false, "Unable to update header.");
-        psFree(stack);
-        return false;
-    }
     // Create JPEGS
     if (!ppStackJPEGs(stack, options, config)) {
Index: branches/eam_branches/ipp-20110404/ppStack/src/ppStackReject.c
===================================================================
--- branches/eam_branches/ipp-20110404/ppStack/src/ppStackReject.c	(revision 31166)
+++ branches/eam_branches/ipp-20110404/ppStack/src/ppStackReject.c	(revision 31442)
@@ -1,4 +1,5 @@
 #include "ppStack.h"
 
+// This is the doomsday switch. 
 // #define TESTING
 
@@ -8,10 +9,41 @@
     psAssert(config, "Require configuration");
 
+/*     if (!options->convolve) { */
+/*         // No need to do complicated rejection when we haven't convolved */
+/*         return true; */
+/*     } */
+
+    
+    int num = options->num;             // Number of inputs
+
+    // Construct a small convolution kernel to aid in rejection
     if (!options->convolve) {
-        // No need to do complicated rejection when we haven't convolved
-        return true;
+      for (int i = 0; i < num; i++) {
+	psArray *regions = psArrayAllocEmpty(1);
+	psRegion *region = psRegionAlloc(0,options->numCols - 1, 0, options->numRows - 1);
+	regions = psArrayAdd(regions,1, region);
+	
+	psArray *kernels = psArrayAllocEmpty(1);
+	psVector *fwhms = psVectorAllocEmpty(1, PS_TYPE_F32);
+	psVectorAppend(fwhms,5.0); // Should be a parameter
+	psVector *orders = psVectorAllocEmpty(1, PS_TYPE_S32);
+	psVectorAppend(orders,0);
+	pmSubtractionKernels *kernel = pmSubtractionKernelsISIS(15,0,fwhms,orders,0,*region,PM_SUBTRACTION_MODE_2);
+	kernels = psArrayAdd(kernels, 1, kernel);
+	
+	kernel->solution1 = psVectorAlloc(3, PS_TYPE_F64);
+	psVectorSet(kernel->solution1, 1, 1.0);
+	psVectorSet(kernel->solution1, 2, 1.0);
+	psVectorSet(kernel->solution1, 3, 1.0);
+	kernel->solution2 = psVectorAlloc(3, PS_TYPE_F64);
+	psVectorSet(kernel->solution2, 1, 1.0);
+	psVectorSet(kernel->solution1, 2, 1.0);
+	psVectorSet(kernel->solution1, 3, 1.0);
+	
+	options->kernels->data[i] = kernels;
+	options->regions->data[i] = regions;
+      }
     }
-
-    int num = options->num;             // Number of inputs
+	
 
     psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // ppStack recipe
