Index: trunk/ppSub/src/ppSubReadout.c
===================================================================
--- trunk/ppSub/src/ppSubReadout.c	(revision 19703)
+++ trunk/ppSub/src/ppSubReadout.c	(revision 19704)
@@ -212,4 +212,12 @@
 
     {
+        if (psMetadataLookup(inConv->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL)) {
+            outRO->analysis = psMetadataCopy(outRO->analysis, inConv->analysis);
+        } else if (psMetadataLookup(refConv->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL)) {
+            outRO->analysis = psMetadataCopy(outRO->analysis, refConv->analysis);
+        } else {
+            psWarning("Unable to find subtraction kernel in analysis metadata.");
+        }
+
         // Update variance factors
         // It's not possible to do this perfectly, since we're combining different images:
@@ -218,9 +226,6 @@
         // Instead, we're going to cheat.
         bool mdok;                      // Status of MD lookup
-        pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, inConv->analysis,
+        pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, outRO->analysis,
                                                             PM_SUBTRACTION_ANALYSIS_KERNEL); // Kernels
-        if (!mdok) {
-            kernels = psMetadataLookupPtr(&mdok, refConv->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL);
-        }
         if (!mdok) {
             psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find subtraction kernels.");
@@ -288,10 +293,5 @@
             psMetadataAddF32(stats, PS_LIST_TAIL, "SUBTRACTION.RMS", 0, "RMS stamp deviation",
                              kernels->rms);
-            if (psMetadataLookup(inConv->analysis, PM_SUBTRACTION_ANALYSIS_MODE)) {
-                metadataCopySingle(stats, inConv->analysis, PM_SUBTRACTION_ANALYSIS_MODE);
-            }
-            if (psMetadataLookup(refConv->analysis, PM_SUBTRACTION_ANALYSIS_MODE)) {
-                metadataCopySingle(stats, refConv->analysis, PM_SUBTRACTION_ANALYSIS_MODE);
-            }
+            metadataCopySingle(stats, outRO->analysis, PM_SUBTRACTION_ANALYSIS_MODE);
         }
     }
@@ -336,11 +336,4 @@
     outRO->mask = (psImage*)psBinaryOp(outRO->mask, inConv->mask, "|", refConv->mask);
     outRO->data_exists = outCell->data_exists = outCell->parent->data_exists = true; // It'll be there soon
-    if (psMetadataLookup(inRO->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL)) {
-        psMetadataCopy(outRO->analysis, inRO->analysis);
-    } else if (psMetadataLookup(refRO->analysis, PM_SUBTRACTION_ANALYSIS_KERNEL)) {
-        psMetadataCopy(outRO->analysis, refRO->analysis);
-    } else {
-        psWarning("Unable to find subtraction kernel in analysis metadata.");
-    }
 
     // Photometry is to be performed in two stages:
