Index: trunk/psModules/src/imcombine/pmSubtractionKernels.c
===================================================================
--- trunk/psModules/src/imcombine/pmSubtractionKernels.c	(revision 13370)
+++ trunk/psModules/src/imcombine/pmSubtractionKernels.c	(revision 13379)
@@ -29,5 +29,5 @@
     }
     float result = value;               // Result to return
-    for (int i = 2; i < exp; i++) {
+    for (int i = 2; i <= exp; i++) {
         result *= value;
     }
@@ -144,6 +144,20 @@
                         kernels->yOrder->data.S32[index] = yOrder;
                         kernels->preCalc->data[index] = psMemIncrRefCounter(preCalc);
+
+                        psTrace("psModules.imcombine", 7, "Kernel %d: %f %d %d %d %d\n", index,
+                                sigmas->data.F32[i], uOrder, vOrder, xOrder, yOrder);
                     }
                 }
+
+
+                if (psTraceGetLevel("psModules.imcombine.kernel") >= 10) {
+                    psString kernelName = NULL;
+                    psStringAppend(&kernelName, "kernel%d.fits", index);
+                    psFits *kernelFile = psFitsOpen(kernelName, "w");
+                    psFree(kernelName);
+                    psFitsWriteImage(kernelFile, NULL, preCalc->image, 0, NULL);
+                    psFitsClose(kernelFile);
+                }
+
                 psFree(preCalc);        // Drop reference
             }
@@ -156,4 +170,5 @@
            kernels->xOrder->data.S32[kernels->subIndex] == 0 &&
            kernels->yOrder->data.S32[kernels->subIndex] == 0);
+
 
     return kernels;
