Index: trunk/psModules/src/imcombine/pmSubtractionStamps.c
===================================================================
--- trunk/psModules/src/imcombine/pmSubtractionStamps.c	(revision 25101)
+++ trunk/psModules/src/imcombine/pmSubtractionStamps.c	(revision 25120)
@@ -254,7 +254,7 @@
         outStamp->status = inStamp->status;
 
-        outStamp->image1 = psKernelCopy(inStamp->image1);
-        outStamp->image2 = psKernelCopy(inStamp->image2);
-        outStamp->variance = psKernelCopy(inStamp->variance);
+        outStamp->image1 = inStamp->image1 ? psKernelCopy(inStamp->image1) : NULL;
+        outStamp->image2 = inStamp->image2 ? psKernelCopy(inStamp->image2) : NULL;
+        outStamp->variance = inStamp->variance ? psKernelCopy(inStamp->variance) : NULL;
 
         if (inStamp->convolutions1) {
@@ -262,6 +262,9 @@
             outStamp->convolutions1 = psArrayAlloc(size);
             for (int j = 0; j < size; j++) {
-                outStamp->convolutions1->data[j] = psKernelCopy(inStamp->convolutions1->data[j]);
+                psKernel *conv = inStamp->convolutions1->data[j]; // Convolution
+                outStamp->convolutions1->data[j] = conv ? psKernelCopy(conv) : NULL;
             }
+        } else {
+            outStamp->convolutions1 = NULL;
         }
         if (inStamp->convolutions2) {
@@ -269,6 +272,9 @@
             outStamp->convolutions2 = psArrayAlloc(size);
             for (int j = 0; j < size; j++) {
-                outStamp->convolutions2->data[j] = psKernelCopy(inStamp->convolutions2->data[j]);
+                psKernel *conv = inStamp->convolutions2->data[j]; // Convolution
+                outStamp->convolutions2->data[j] = conv ? psKernelCopy(conv) : NULL;
             }
+        } else {
+            outStamp->convolutions2 = NULL;
         }
 
