Index: /trunk/psModules/src/detrend/pmOverscan.c
===================================================================
--- /trunk/psModules/src/detrend/pmOverscan.c	(revision 39498)
+++ /trunk/psModules/src/detrend/pmOverscan.c	(revision 39499)
@@ -228,4 +228,5 @@
 	psMetadataAddF32(hdu->header, PS_LIST_TAIL, "OVER_SIG", PS_META_REPLACE, "Overscan stdev", NAN);
 
+	// NOTE psBinaryOp frees arg2 if it is a scalar
 	(void)psBinaryOp(input->image, input->image, "-", psScalarAlloc((float)overscanOpts->value, PS_TYPE_F32));
 
@@ -296,5 +297,5 @@
 
 	psScalar *reducedScalar = psScalarAlloc(reduced, PS_TYPE_F32);
-	(void)psBinaryOp (image, image, "-", reducedScalar);
+	psBinaryOp (image, image, "-", psMemIncrRefCounter(reducedScalar)); // NOTE: psBinaryOp frees arg2 if it a scalar, so we need to bump to re-use
 
 	// subtract the measured value from each overscan region as well
@@ -302,5 +303,5 @@
 	overscan = NULL;   // Overscan image from iterator
 	while ((overscan = psListGetAndIncrement(iter))) {
-	  (void)psBinaryOp(overscan, overscan, "-", reducedScalar);
+	  psBinaryOp(overscan, overscan, "-", psMemIncrRefCounter(reducedScalar)); // NOTE: psBinaryOp frees arg2 if it a scalar, so we need to bump to re-use
 	}
 	psFree(iter);
