Index: trunk/ppStack/src/ppStackCamera.c
===================================================================
--- trunk/ppStack/src/ppStackCamera.c	(revision 23371)
+++ trunk/ppStack/src/ppStackCamera.c	(revision 23576)
@@ -51,4 +51,11 @@
     bool status = false;                // Status of file definition
 
+    psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // Recipe for ppSim
+    if (!recipe) {
+        psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to find recipe %s", PPSTACK_RECIPE);
+        return false;
+    }
+    bool convolve = psMetadataLookupBool(NULL, recipe, "CONVOLVE"); // Convolve images before stack?
+
     psArray *runImages = pmFPAfileDefineMultipleFromRun(&status, NULL, config,
                                                         "PPSTACK.INPUT"); // Input images from previous run
@@ -98,5 +105,5 @@
         }
         if (!runSrc) {
-            psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to define input sources from RUN metadta.");
+            psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to define input sources from RUN metadata.");
             psFree(runImages);
             return false;
@@ -104,17 +111,20 @@
         psFree(runSrc);
 
-        psArray *runKernel = pmFPAfileDefineMultipleFromRun(&status, runImages, config,
-                                                            "PPSTACK.CONV.KERNEL"); // Convolution kernels
-        if (!status) {
-            psError(PS_ERR_UNKNOWN, false, "Unable to define convolution kernels from RUN metadata.");
-            psFree(runImages);
-            return false;
-        }
-        if (!runSrc) {
-            psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to define convolution kernels from RUN metadta.");
-            psFree(runImages);
-            return false;
-        }
-        psFree(runKernel);
+        if (convolve) {
+            psArray *runKernel = pmFPAfileDefineMultipleFromRun(&status, runImages, config,
+                                                                "PPSTACK.CONV.KERNEL"); // Convolution kernels
+            if (!status) {
+                psError(PS_ERR_UNKNOWN, false, "Unable to define convolution kernels from RUN metadata.");
+                psFree(runImages);
+                return false;
+            }
+            if (!runKernel) {
+                psError(PS_ERR_UNEXPECTED_NULL, true,
+                        "Unable to define convolution kernels from RUN metadata.");
+                psFree(runImages);
+                return false;
+            }
+            psFree(runKernel);
+        }
 
         psFree(runImages);
@@ -200,10 +210,12 @@
             }
 
-            pmFPAfile *kernel = pmFPAfileDefineOutput(config, imageFile->fpa, "PPSTACK.CONV.KERNEL");
-            if (!kernel) {
-                psError(PS_ERR_IO, false, _("Unable to generate output file from PPSTACK.CONV.KERNEL"));
-                return false;
-            }
-            kernel->save = true;
+            if (convolve) {
+                pmFPAfile *kernel = pmFPAfileDefineOutput(config, imageFile->fpa, "PPSTACK.CONV.KERNEL");
+                if (!kernel) {
+                    psError(PS_ERR_IO, false, _("Unable to generate output file from PPSTACK.CONV.KERNEL"));
+                    return false;
+                }
+                kernel->save = true;
+            }
 
             i++;
@@ -300,11 +312,4 @@
     }
     jpeg2->save = true;
-
-
-    psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // Recipe for ppSim
-    if (!recipe) {
-        psError(PS_ERR_UNEXPECTED_NULL, false, "Unable to find recipe %s", PPSTACK_RECIPE);
-        return false;
-    }
 
     // For photometry, we operate on the chip-mosaicked image
