Index: /branches/meh_branches/ppsub_test/psModules/src/imcombine/pmSubtractionMatch.c
===================================================================
--- /branches/meh_branches/ppsub_test/psModules/src/imcombine/pmSubtractionMatch.c	(revision 32129)
+++ /branches/meh_branches/ppsub_test/psModules/src/imcombine/pmSubtractionMatch.c	(revision 32130)
@@ -810,5 +810,6 @@
 		    }
 		}
-
+		
+		//MEH probably should comment out but should be ok?
 		// step 0 : calculate the normalizations, pass along to the next steps via stamps->normValue
 		psTrace("psModules.imcombine", 3, "Calculating normalization...\n");
@@ -825,7 +826,15 @@
 		for (int order = 0; order <= N_TEST_ORDER; order++) {
 		    for (int j = 0; j < N_TEST_MODES; j++) {
-			if (!pmSubtractionMatchAttempt(&bestMatch, kernels, stamps, TestModes[j], order, false)) {
+		        //MEH: thinking pmSubtractionCalculateNormalization needs to be called here for conv source
+		        // per mode
+  		        psTrace("psModules.imcombine", 3, "Calculating normalization...order: %d  mode: %d\n",order,j);
+		        if (!pmSubtractionCalculateNormalization(stamps, TestModes[j])) {
+			    psError(psErrorCodeLast(), false, "Unable to calculate least-squares equation.");
 			    goto MATCH_ERROR;
-			}
+		        }
+		        //
+		        if (!pmSubtractionMatchAttempt(&bestMatch, kernels, stamps, TestModes[j], order, false)) {
+			  goto MATCH_ERROR;
+		        }
 		    }
 		}
@@ -843,4 +852,11 @@
 	    // apply the best fit so we are ready to roll
 	    psLogMsg("psModules.imcombine", PS_LOG_INFO, "applying order: %d, mode: %d\n", bestMatch->spatialOrder, bestMatch->mode);
+	    //MEH need to call normalization one more time for final/best run - 
+	    // but what if dual - already checked for in pmSubtractionCalculateNormalization
+	    if (!pmSubtractionCalculateNormalization(stamps, bestMatch->mode)) {
+	        psError(psErrorCodeLast(), false, "Unable to calculate least-squares equation.");
+	    	goto MATCH_ERROR;
+	    }
+	    //
 	    if (!pmSubtractionMatchAttempt(NULL, kernels, stamps, bestMatch->mode, bestMatch->spatialOrder, true)) {
 		goto MATCH_ERROR;
