Index: branches/eam_branches/ipp-20100823/ppSub/src/ppSub.c
===================================================================
--- branches/eam_branches/ipp-20100823/ppSub/src/ppSub.c	(revision 29451)
+++ branches/eam_branches/ipp-20100823/ppSub/src/ppSub.c	(revision 29452)
@@ -109,4 +109,5 @@
         pmModelClassCleanup();
         pmConfigDone();
+	pmVisualCleanup ();
         psLibFinalize();
 
Index: branches/eam_branches/ipp-20100823/ppSub/src/ppSubMatchPSFs.c
===================================================================
--- branches/eam_branches/ipp-20100823/ppSub/src/ppSubMatchPSFs.c	(revision 29451)
+++ branches/eam_branches/ipp-20100823/ppSub/src/ppSubMatchPSFs.c	(revision 29452)
@@ -110,4 +110,5 @@
     pmReadout *kernelRO = pmFPAfileThisReadout(config->files, view, "PPSUB.OUTPUT.KERNELS"); // RO with kernel
     if (kernelRO) {
+	psAbort("we probably need to set the FWHM values");
         psFree(view);
         return true;
@@ -117,9 +118,4 @@
     psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSUB_RECIPE); // Recipe for ppSim
     psAssert(recipe, "We checked this earlier, so it should be here.");
-    if (!psMetadataLookupBool(NULL, recipe, "SCALE")) {
-        // No scaling requested
-        psFree(view);
-        return true;
-    }
 
     // Input images
@@ -131,6 +127,6 @@
     pmReadout *refSourceRO = pmFPAfileThisReadout(config->files, view, "PPSUB.REF.SOURCES");
     if (!inSourceRO || !refSourceRO) {
-        psWarning("Unable to scale kernel, since no sources were provided.");
-        return true;
+        psError(PPSUB_ERR_DATA, false, "Unable to scale kernel, since no sources were provided.");
+        return false;
     }
 
@@ -141,6 +137,6 @@
 
     if (!inDetections || !refDetections) {
-        psWarning("Unable to scale kernel, since no sources were provided.");
-        return true;
+        psError(PPSUB_ERR_DATA, false, "Unable to set FWHM or scale kernel, since no sources were provided.");
+        return false;
     }
 
@@ -161,5 +157,15 @@
     psLogMsg("ppSub", PS_LOG_INFO, "Input FWHM: %f\nReference FWHM: %f\n", inFWHM, refFWHM);
     if (!isfinite(inFWHM) || !isfinite(refFWHM)) {
-        psWarning("Unable to scale kernel, since unable to measure PSFs.");
+        psError(PPSUB_ERR_DATA, false, "Cannot determine FHWM for images, giving up.");
+        return false;
+    }
+
+    // we need to register the FWHM values for use downstream 
+    pmSubtractionSetFWHMs(inFWHM, refFWHM);
+
+    // is auto-scaling needed?
+    if (!psMetadataLookupBool(NULL, recipe, "SCALE")) {
+        // No scaling requested
+        psFree(view);
         return true;
     }
@@ -175,6 +181,5 @@
     }
 
-    if (!pmSubtractionParamsScale(kernelSize, stampSize, kernelWidths, inFWHM, refFWHM,
-                                  scaleRef, scaleMin, scaleMax)) {
+    if (!pmSubtractionParamsScale(kernelSize, stampSize, kernelWidths, scaleRef, scaleMin, scaleMax)) {
         psError(PPSUB_ERR_DATA, false, "Unable to scale parameters.");
         return false;
