Index: trunk/archive/scripts/src/phase2/papPhase2.c
===================================================================
--- trunk/archive/scripts/src/phase2/papPhase2.c	(revision 5462)
+++ trunk/archive/scripts/src/phase2/papPhase2.c	(revision 5464)
@@ -577,13 +577,11 @@
 					    if (coeff->type.type != PS_TYPE_F64) {
 						psVector *temp = psVectorCopy(NULL, coeff, PS_TYPE_F64);
-						psFree(coeff);
 						coeff = temp;
 					    }
 					    // Polynomial correction
-					    psPolynomial1D *correction = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD,
-											     coeff->n + 1);
-					    for (int i = 0; i < coeff->n; i++) {
-						correction->coeff[i] = coeff->data.F64[i];
-					    }
+					    psPolynomial1D *correction = psPolynomial1DAlloc(coeff->n - 1,
+											     PS_POLYNOMIAL_ORD);
+					    psFree(correction->coeff);
+					    correction->coeff = psMemIncrRefCounter(coeff->data.F64);
 					    (void)pmNonLinearityPolynomial(inputReadout, correction);
 					    psFree(coeff);
@@ -726,9 +724,12 @@
 		}
 
+		// XXX: Temporary: until the other functions are altered to do this themselves.
 		// Trim, so that flat, fringe etc computations are faster.
+#ifndef PRODUCTION
 		psRegion *trimRegion = psMetadataLookupPtr(NULL, inputCell->concepts, "CELL.TRIMSEC");
 		psImage *trimmed = psImageSubset(inputReadout->image, *trimRegion);
 		psFree(inputReadout->image);
 		inputReadout->image = trimmed;
+#endif
 
 		// Flat-field correction
