Index: /branches/eam_branches/ipp-20101205/ppSub/src/ppSubMatchPSFs.c
===================================================================
--- /branches/eam_branches/ipp-20101205/ppSub/src/ppSubMatchPSFs.c	(revision 30383)
+++ /branches/eam_branches/ipp-20101205/ppSub/src/ppSubMatchPSFs.c	(revision 30384)
@@ -164,23 +164,22 @@
 
     // is auto-scaling needed?
-    if (!psMetadataLookupBool(NULL, recipe, "SCALE")) {
-        // No scaling requested
-        return true;
-    }
-
+    bool scale = psMetadataLookupBool(NULL, recipe, "SCALE");
     float scaleRef = psMetadataLookupF32(NULL, recipe, "SCALE.REF"); // Reference for scaling
     float scaleMin = psMetadataLookupF32(NULL, recipe, "SCALE.MIN"); // Minimum for scaling
     float scaleMax = psMetadataLookupF32(NULL, recipe, "SCALE.MAX"); // Maximum for scaling
-    if (!isfinite(scaleRef) || !isfinite(scaleMin) || !isfinite(scaleMax)) {
+
+    if (scale && (!isfinite(scaleRef) || !isfinite(scaleMin) || !isfinite(scaleMax))) {
         psError(PPSUB_ERR_ARGUMENTS, false,
-                "Scale parameters (SCALE.REF=%f, SCALE.MIN=%f, SCALE.MAX=%f) not set in recipe.",
+                "auto-scale selected but scale parameters (SCALE.REF=%f, SCALE.MIN=%f, SCALE.MAX=%f) not set in recipe.",
                 scaleRef, scaleMin, scaleMax);
         return false;
     }
 
-    if (!pmSubtractionParamsScale(kernelSize, stampSize, kernelWidths, scaleRef, scaleMin, scaleMax)) {
-        psError(PPSUB_ERR_DATA, false, "Unable to scale parameters.");
-        return false;
-    }
+    pmSubtractionParamScaleOptions(scale, scaleRef, scaleMin, scaleMax);
+
+    // if (!pmSubtractionParamsScale(kernelSize, stampSize, kernelWidths)) {
+    //     psError(PPSUB_ERR_DATA, false, "Unable to scale parameters.");
+    //     return false;
+    // }
 
     return true;
