Index: trunk/ppImage/src/ppImageDetrendReadout.c
===================================================================
--- trunk/ppImage/src/ppImageDetrendReadout.c	(revision 26653)
+++ trunk/ppImage/src/ppImageDetrendReadout.c	(revision 29833)
@@ -51,11 +51,23 @@
     }
 
-
-# if 0
+    // Subtract the overscan
+    if (options->doOverscan) {
+      if (!pmOverscanSubtract (input, options->overscan)) {
+	psError(PS_ERR_UNKNOWN, false, "Unable to subtract overscan.");
+	psFree(detview);
+	return false;
+      }
+    }
+
     // Non-linearity correction
     if (options->doNonLin) {
-        ppImageDetrendNonLinear(detrend->input, input, options);
-    }
-# endif
+      //      linearity = pmFPAfileThisReadout(config->files, detview, "PPIMAGE.LINEARITY");
+      if (!ppImageDetrendNonLinear(input,detview,config)) {
+	psError(PS_ERR_UNKNOWN, false, "Unable to correct NonLinearity");
+	psFree(detview);
+	return(false);
+      }
+      /*       ppImageDetrendNonLinear(detrend->input, input, options); */
+    }
 
     // set up the dark and bias
@@ -77,7 +89,7 @@
     }
 
-    // Bias, dark and overscan subtraction are all merged.
-    if (options->doBias || options->doOverscan) {
-        if (!pmBiasSubtract(input, options->overscan, bias, oldDark, view)) {
+    // Bias and temperature-independent-dark subtraction are merged.
+    if (options->doBias) {
+        if (!pmBiasSubtract(input, bias, oldDark, view)) {
             psError(PS_ERR_UNKNOWN, false, "Unable to subtract bias.");
             psFree(detview);
@@ -85,5 +97,5 @@
         }
     }
-
+    
     // Weight on the basis of pixel value needs to be done after the overscan has been subtracted
     if (options->doVarianceBuild) {
