Index: /branches/eam_branches/ipp-pstamp-20260421/psModules/src/config/pmConfig.c
===================================================================
--- /branches/eam_branches/ipp-pstamp-20260421/psModules/src/config/pmConfig.c	(revision 43017)
+++ /branches/eam_branches/ipp-pstamp-20260421/psModules/src/config/pmConfig.c	(revision 43018)
@@ -1971,6 +1971,31 @@
 }
 
+// this function is similar to pmConfigConvertFilename, but that function requires the ipprc to have
+// already been read (since it translates path: entries)
+// XXX EAM : merge duplicate code here
 static psString resolveConfigFile(const char *nameArg)
 {
+    // strip file:// from front of name
+    if (!strncasecmp(nameArg, "file:", strlen("file:"))) {
+        psString newName = psStringCopy(nameArg);
+
+        char *point = newName + strlen("file:");
+        while (*point == '/') {
+            point ++;
+        }
+        char *tmpName = NULL;
+        psStringAppend (&tmpName, "/%s", point);
+        psFree (newName);
+        newName = tmpName;
+
+        if (!checkPath(newName, false, false)) {
+            // let checkPath()'s psError() call float up
+            psError(psErrorCodeLast(), false, "error from checkPath for file:// (%s)", newName);
+            psFree (newName);
+            return NULL;
+        }
+        return newName;
+    }
+
     // if config file name is nebulous path resolve it
     // otherwise just return a copy of the argument
Index: /branches/eam_branches/ipp-pstamp-20260421/psModules/src/imcombine/pmStack.c
===================================================================
--- /branches/eam_branches/ipp-pstamp-20260421/psModules/src/imcombine/pmStack.c	(revision 43017)
+++ /branches/eam_branches/ipp-pstamp-20260421/psModules/src/imcombine/pmStack.c	(revision 43018)
@@ -1997,4 +1997,5 @@
     psFree(pixelMap);
     psFree(weights);
+    psFree(exps);
     psFree(buffer);
     psFree(addVariance);
Index: /branches/eam_branches/ipp-pstamp-20260421/psModules/src/objects/pmSourceFitModel.c
===================================================================
--- /branches/eam_branches/ipp-pstamp-20260421/psModules/src/objects/pmSourceFitModel.c	(revision 43017)
+++ /branches/eam_branches/ipp-pstamp-20260421/psModules/src/objects/pmSourceFitModel.c	(revision 43018)
@@ -74,4 +74,6 @@
 }
 
+static int nWarn = 0;
+
 bool pmSourceFitModel (pmSource *source,
                        pmModel *model,
@@ -121,5 +123,8 @@
             // skip nan values in image
             if (!isfinite(source->pixels->data.F32[i][j])) {
-		fprintf (stderr, "WARNING: unmasked nan in image : %x vs %x\n", source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[i][j], maskVal);
+		if ((nWarn < 10) || (nWarn % 100 == 0)) {
+		    fprintf (stderr, "WARNING (# %d): unmasked nan in image : %x vs %x\n", nWarn, source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[i][j], maskVal);
+		}
+		nWarn ++;
                 continue;
             }
@@ -127,5 +132,8 @@
             // skip nan values in image
             if (!isfinite(vWgt[i][j])) {
-		fprintf (stderr, "WARNING: unmasked nan in variance : %x vs %x\n", source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[i][j], maskVal);
+		if ((nWarn < 10) || (nWarn % 100 == 0)) {
+		    fprintf (stderr, "WARNING: unmasked nan in variance : %x vs %x\n", source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA[i][j], maskVal);
+		}
+		nWarn ++;
 		continue;
             }
