Index: trunk/psModules/src/imcombine/pmSubtractionKernels.c
===================================================================
--- trunk/psModules/src/imcombine/pmSubtractionKernels.c	(revision 14690)
+++ trunk/psModules/src/imcombine/pmSubtractionKernels.c	(revision 14701)
@@ -216,17 +216,19 @@
 
     // Subtract a reference kernel from all the others to maintain flux scaling
-    int subIndex = 0;                   // Index of kernel to subtract from others
-    psKernel *subtract = kernels->preCalc->data[subIndex]; // Kernel to subtract from others
-    int numGaussians = fwhms->n;       // Number of Gaussians
-    for (int i = 0, index = 0; i < numGaussians; i++) {
-        for (int uOrder = 0; uOrder <= orders->data.S32[i]; uOrder++) {
-            for (int vOrder = 0; vOrder <= orders->data.S32[i] - uOrder; vOrder++, index++) {
-                if (uOrder % 2 == 0 && vOrder % 2 == 0 && index != subIndex) {
-                    psKernel *kernel = kernels->preCalc->data[index]; // Kernel to subtract
-                    psBinaryOp(kernel->image, kernel->image, "-", subtract->image);
+//    if (spatialOrder > 0) {
+        int subIndex = 0;                   // Index of kernel to subtract from others
+        psKernel *subtract = kernels->preCalc->data[subIndex]; // Kernel to subtract from others
+        int numGaussians = fwhms->n;       // Number of Gaussians
+        for (int i = 0, index = 0; i < numGaussians; i++) {
+            for (int uOrder = 0; uOrder <= orders->data.S32[i]; uOrder++) {
+                for (int vOrder = 0; vOrder <= orders->data.S32[i] - uOrder; vOrder++, index++) {
+                    if (uOrder % 2 == 0 && vOrder % 2 == 0 && index != subIndex) {
+                        psKernel *kernel = kernels->preCalc->data[index]; // Kernel to subtract
+                        psBinaryOp(kernel->image, kernel->image, "-", subtract->image);
+                    }
                 }
             }
         }
-    }
+//    }
 
     if (psTraceGetLevel("psModules.imcombine.kernel") >= 10) {
@@ -452,19 +454,21 @@
     // Subtract unity from the kernels to maintain photometric flux scaling
     int numGaussians = fwhms->n;       // Number of Gaussians
-    for (int i = 0, index = 0; i < numGaussians; i++) {
-        for (int uOrder = 0; uOrder <= orders->data.S32[i]; uOrder++) {
-            for (int vOrder = 0; vOrder <= orders->data.S32[i] - uOrder; vOrder++, index++) {
-                if (uOrder % 2 == 0 && vOrder % 2 == 0) {
-                    psKernel *kernel = kernels->preCalc->data[index]; // Kernel to subtract
-                    kernel->kernel[0][0] -= 1.0;
+//    if (spatialOrder > 0) {
+        for (int i = 0, index = 0; i < numGaussians; i++) {
+            for (int uOrder = 0; uOrder <= orders->data.S32[i]; uOrder++) {
+                for (int vOrder = 0; vOrder <= orders->data.S32[i] - uOrder; vOrder++, index++) {
+                    if (uOrder % 2 == 0 && vOrder % 2 == 0) {
+                        psKernel *kernel = kernels->preCalc->data[index]; // Kernel to subtract
+                        kernel->kernel[0][0] -= 1.0;
+                    }
                 }
             }
         }
-    }
+//    }
 
     int numISIS = kernels->num;         // Number of ISIS kernels
     int numInner = PS_SQR(2 * inner + 1); // Number of inner kernel elements
 
-    if (!p_pmSubtractionKernelsAddGrid(kernels, numGaussians, inner)) {
+    if (!p_pmSubtractionKernelsAddGrid(kernels, numISIS, inner)) {
         psAbort("Should never get here.");
     }
