Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 5604)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeSpline.cc	(revision 5605)
@@ -397,4 +397,5 @@
   if (IsNoiseCalculation())
     {
+
       if (fRandomIter == int(1./fResolution))
         fRandomIter = 0;
@@ -435,5 +436,5 @@
   // Don't start if the maxpos is too close to the limits.
   //
-  if (sat > 1 || maxpos < 2 || maxpos > range-2)
+  if (sat > 1 || maxpos < 1 || maxpos > range-2)
     {
       time =  IsExtractionType(kMaximum) 
@@ -526,5 +527,4 @@
         }
   }
-
   //
   // Now, the time, abmax and khicont and klocont are set correctly within the previous precision.
@@ -574,5 +574,5 @@
       klo--;
       khi--;
-      upper += 1.;
+      upper -= 1.;
       lower -= 1.;
     }
@@ -662,8 +662,5 @@
 
           if (++cnt > maxcnt)
-            {
-              //              *fLog << inf << x << "  " << y << " " << fHalfMax << endl;
-              break;
-            }
+            break;
           
           step /= 2.;
@@ -789,5 +786,5 @@
         {
           Float_t start = 2. + nsx;
-          Float_t last  = start + fRiseTime + fFallTime;
+          Float_t last  = start + fRiseTime + fFallTime +1.;
       
           if (int(last) > range)
@@ -949,5 +946,5 @@
       klo--;
       khi--;
-      upper += 1.;
+      upper -= 1.;
       lower -= 1.;
     }
@@ -1060,6 +1057,6 @@
       // Now integrate the whole thing!
       // 
-      Float_t start = fAbMaxPos - fRiseTime;
-      Float_t last  = fAbMaxPos + fFallTime + 1.;
+      Float_t start = fAbMaxPos - fRiseTime - 0.5;
+      Float_t last  = fAbMaxPos + fFallTime + 0.5;
       
       const Int_t diff = int(last) - range;
