Index: trunk/psModules/src/detrend/pmShutterCorrection.c
===================================================================
--- trunk/psModules/src/detrend/pmShutterCorrection.c	(revision 8884)
+++ trunk/psModules/src/detrend/pmShutterCorrection.c	(revision 8886)
@@ -61,4 +61,5 @@
 
 #include "pmShutterCorrection.h"
+#include "psVectorBracket.h"
 
 static void pmShutterCorrParsFree (pmShutterCorrPars *pars)
@@ -89,6 +90,7 @@
 
     pmShutterCorrPars *pars = pmShutterCorrParsAlloc ();
-
-    N = exptime->n;
+    psPolynomial1D *line = psPolynomial1DAlloc (PS_POLYNOMIAL_ORD, 1);
+
+    int N = exptime->n;
     // ASSERT (N >> 5)
 
@@ -111,7 +113,6 @@
 
     // fit a line and extrapolate the fit to 0.0
-    psPolynomial1D *line = psPolynomial1DAlloc (PS_POLYNOMIAL_ORD, 1);
-    line = psVectorFitPolynomial1D (line, NULL, 0, tmpY, NULL, tmpX);
-    ratio = psPolynomial1DEval (line, 0.0) / pars->scale;
+    psVectorFitPolynomial1D (line, NULL, 0, tmpY, NULL, tmpX);
+    float ratio = psPolynomial1DEval (line, 0.0) / pars->scale;
 
     // XXX we need a sanity check:
@@ -122,8 +123,8 @@
 
     // find two points bracketing the value counts = A (1 + dTk/dTo) / 2 = pars->scale (1 + ratio) / 2
-    value = pars->scale * (1 + ratio) / 2.0;
-
-    Nm = psVectorBracket (exptime, value, (ratio < 1.0));
-    Np = (Nm == N - 1) ? Nm - 1 : Nm + 1;
+    float value = pars->scale * (1 + ratio) / 2.0;
+
+    int Nm = psVectorBracket (exptime, value, (ratio < 1.0));
+    int Np = (Nm == N - 1) ? Nm - 1 : Nm + 1;
 
     tmpX->data.F64[0] = counts->data.F64[Nm];
@@ -133,5 +134,4 @@
 
     // fit a line and extrapolate the fit to counts = A (1 + dTk/dTo) : exptime = dTo
-    psPolynomial1D *line = psPolynomial1DAlloc (PS_POLYNOMIAL_ORD, 1);
     line = psVectorFitPolynomial1D (line, NULL, 0, tmpY, NULL, tmpX);
     pars->offref = psPolynomial1DEval (line, value);
@@ -154,5 +154,5 @@
 
     for (int i = 0; i < exptime->n; i++) {
-        value = 1.0 / (exptime->data.F32[i] + offref);
+        float value = 1.0 / (exptime->data.F32[i] + offref);
         x->data.F32[i] = exptime->data.F32[i] * value;
         y->data.F32[i] = value;
@@ -171,5 +171,5 @@
     pmShutterCorrPars *pars = pmShutterCorrParsAlloc ();
 
-    pars->offref = guess->offref;
+    pars->offref = offref;
     pars->scale  = line->coeff[1][0];
     pars->offset = line->coeff[0][1] / line->coeff[1][0];
@@ -235,5 +235,5 @@
     }
 
-    fitStatus = psMinimizeLMChi2(myMin, covar, params, constrain, x, y, yErr, pmShutterCorrectionModel);
+    psMinimizeLMChi2(myMin, covar, params, constrain, x, y, yErr, pmShutterCorrectionModel);
 
     pmShutterCorrPars *pars = pmShutterCorrParsAlloc ();
