Index: trunk/ppSub/src/ppSubDefineOutput.c
===================================================================
--- trunk/ppSub/src/ppSubDefineOutput.c	(revision 23740)
+++ trunk/ppSub/src/ppSubDefineOutput.c	(revision 26899)
@@ -51,7 +51,9 @@
     bool mdok;                          // Status of MD lookup
     psMetadata *analysis = inConv->analysis; // Analysis metadata with kernel information
-    pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, analysis,
-                                                        PM_SUBTRACTION_ANALYSIS_KERNEL); // Subtraction kernel
+    pmHDU *hdu = pmHDUFromCell(inConv->parent);
+    pmSubtractionKernels *kernels = psMetadataLookupPtr(&mdok, analysis, PM_SUBTRACTION_ANALYSIS_KERNEL); // Subtraction kernel
+
     if (!kernels) {
+	hdu = pmHDUFromCell(refConv->parent);
         analysis = refConv->analysis;
         kernels = psMetadataLookupPtr(&mdok, analysis, PM_SUBTRACTION_ANALYSIS_KERNEL);
@@ -62,6 +64,7 @@
         return false;
     }
-    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.KERNEL", 0, "Subtraction kernel",
-                     kernels->description);
+    psAssert (hdu, "unable to find HDU");
+    psMetadataAddStr(outHDU->header, PS_LIST_TAIL, "PPSUB.KERNEL", 0, "Subtraction kernel", kernels->description);
+    outHDU->header = psMetadataCopy(outHDU->header, hdu->header);
 
     // Add additional data to the header
