Index: trunk/MagicSoft/Mars/msignal/MExtractFixedWindowSpline.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractFixedWindowSpline.cc	(revision 5603)
+++ trunk/MagicSoft/Mars/msignal/MExtractFixedWindowSpline.cc	(revision 5604)
@@ -267,5 +267,4 @@
       sum += (Float_t)*ptr/2.;
       fHiGainSecondDeriv[++i] = 0.;      
-
     }
   else
@@ -280,18 +279,16 @@
       i++;
 
-      pp = fHiGainSecondDeriv[i-1] + 4.;
-      fHiGainSecondDeriv[i] = -1.0/pp;
-      fHiGainFirstDeriv [i] = *(logain) - 2.* *(ptr) + *(ptr-1);
-      fHiGainFirstDeriv [i] = (6.0*fHiGainFirstDeriv[i]-fHiGainFirstDeriv[i-1])/pp;
-      
+      if (*logain >= fSaturationLimit)
+        sat++;
+
       if (fHiLoLast == 1)
-        {
-          sum += (Float_t)*logain/2;
-          fHiGainSecondDeriv[++i] = 0.;
-          if (*logain >= fSaturationLimit)
-            sat++;
-        }
+        sum += (Float_t)*logain/2;
       else
         {
+          pp = fHiGainSecondDeriv[i-1] + 4.;
+          fHiGainSecondDeriv[i] = -1.0/pp;
+          fHiGainFirstDeriv [i] = *(logain) - 2.* *(ptr) + *(ptr-1);
+          fHiGainFirstDeriv [i] = (6.0*fHiGainFirstDeriv[i]-fHiGainFirstDeriv[i-1])/pp;
+      
           // 
           // Second, the first low-gain slice as center 
@@ -325,9 +322,9 @@
               
             }
-          sum += (Float_t)*logain/2;
-          fHiGainSecondDeriv[++i] = 0.;
         }
     }
   
+  fHiGainSecondDeriv[range-1] = 0.;
+
   for (Int_t k=range-2;k>0;k--)
     {
