Index: trunk/psModules/src/imcombine/pmSubtraction.c
===================================================================
--- trunk/psModules/src/imcombine/pmSubtraction.c	(revision 13385)
+++ trunk/psModules/src/imcombine/pmSubtraction.c	(revision 13386)
@@ -4,6 +4,6 @@
  *  @author GLG, MHPCC
  *
- *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-05-15 04:32:08 $
+ *  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-05-15 04:33:58 $
  *
  *  Copyright 2004-2007 Institute for Astronomy, University of Hawaii
@@ -110,4 +110,8 @@
     )
 {
+    int xOrder = kernels->xOrder->data.S32[index]; // Polynomial order in x
+    int yOrder = kernels->yOrder->data.S32[index]; // Polynomial order in y
+    double polyValue = polyValues->data.F64[yOrder][xOrder]; // Value of spatial polynomial
+
     switch (kernels->type) {
       case PM_SUBTRACTION_KERNEL_POIS: {
@@ -115,11 +119,7 @@
           int u = kernels->u->data.S32[index]; // Offset in x
           int v = kernels->v->data.S32[index]; // Offset in y
-          int xOrder = kernels->xOrder->data.S32[index]; // Polynomial order in x
-          int yOrder = kernels->yOrder->data.S32[index]; // Polynomial order in y
-          return weightFunc(polyValues->data.F64[yOrder][xOrder]) * image->data.F32[y + v][x + u];
+          return weightFunc(polyValue) * image->data.F32[y + v][x + u];
       }
       case PM_SUBTRACTION_KERNEL_ISIS: {
-          int xOrder = kernels->xOrder->data.S32[index]; // Polynomial order in x
-          int yOrder = kernels->yOrder->data.S32[index]; // Polynomial order in y
           psKernel *kernel = kernels->preCalc->data[index]; // The convolution kernel
           int size = kernels->size;     // Kernel half-size
@@ -130,5 +130,5 @@
               }
           }
-          return weightFunc(polyValues->data.F64[yOrder][xOrder]) * sum;
+          return weightFunc(polyValue) * sum;
       }
       default:
