Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 5527)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.cc	(revision 5528)
@@ -191,7 +191,7 @@
       if (pixel.HasLoGain())
         {
-          fLoGainFirstSave = fLoGainFirst;
+          fLoGainFirstSave = (Int_t)fLoGainFirst;
           const Int_t logainstart = (Int_t)(timehi+fLoGainStartShift);
-          fLoGainFirst     = logainstart > 0 ? logainstart : fLoGainFirstSave;
+          fLoGainFirst     = logainstart > fLoGainFirstSave ? logainstart : fLoGainFirstSave;
         
           if ( fLoGainFirst < fLoGainLast )
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.h	(revision 5527)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndCharge.h	(revision 5528)
@@ -13,5 +13,5 @@
   static const Float_t fgLoGainStartShift; // Default for fLoGainStartShift (now set to: -2.8)
   
-  Byte_t  fLoGainFirstSave;       //! Temporary variable to store the original position of low-gain start slice
+  Int_t   fLoGainFirstSave;       //! Temporary variable to store the original position of low-gain start slice
   Float_t fLoGainStartShift;      // Shift to start searching the low-gain signal obtained from the high-gain times.
 
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 5527)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.cc	(revision 5528)
@@ -209,4 +209,5 @@
 
   fHiGainSignal.Set(range);
+
   range = (Int_t)(fLoGainLast - fLoGainFirst + 1);
 
@@ -324,5 +325,5 @@
   // Calculate the sum of the first fWindowSize slices
   //
-  for (Int_t i=0;i<range-fWindowSizeHiGain;i++)
+  for (Int_t i=0;i<range-fWindowSizeHiGain+1;i++)
     {
       sum      = 0.;
@@ -347,5 +348,5 @@
 	max_p     = i;
       }
-    } /*   for (Int_t i=0;i<range-fWindowSizeHiGain;i++) */
+    } /*   for (Int_t i=0;i<range-fWindowSizeHiGain+1;i++) */
 
   time = 0;
@@ -384,5 +385,5 @@
     const Int_t   ids = max_p + sample;
     
-    const Float_t pex = ids < 0 ? 0. : ( ids > range ? 0. : fHiGainSignal[ids]);
+    const Float_t pex = ids < 0 ? 0. : ( ids >= range ? 0. : fHiGainSignal[ids]);
     sum              += fAmpWeightsHiGain [idx]*pex; 
     time_sum         += fTimeWeightsHiGain[idx]*pex;
@@ -405,5 +406,6 @@
 {
 
-  Int_t range = fLoGainLast - fLoGainFirst + 1;
+  const Int_t range = fLoGainLast - fLoGainFirst + 1;
+
   const Byte_t *end = ptr + range;
   Byte_t *p     = ptr;
@@ -443,5 +445,5 @@
         sat++;
     }
-  
+
   //
   // Slide with a window of size fWindowSizeHiGain over the sample 
@@ -466,5 +468,5 @@
   // Calculate the sum of the first fWindowSize slices
   //
-  for (Int_t i=0;i<range-fWindowSizeLoGain;i++)
+  for (Int_t i=0;i<range-fWindowSizeLoGain+1;i++)
     {
       sum      = 0.;
@@ -489,5 +491,5 @@
 	max_p     = i;
       }
-    } /*   for (Int_t i=0;i<range-fWindowSizeLoGain;i++) */
+    } /*   for (Int_t i=0;i<range-fWindowSizeLoGain+1;i++) */
 
   time = 0;
@@ -526,5 +528,5 @@
     const Int_t   idx = fBinningResolutionLoGain*sample + fBinningResolutionHalfLoGain + t_iter;
     const Int_t   ids = max_p + sample;;
-    const Float_t pex = ids < 0 ? 0. : ( ids > range ? 0. : fLoGainSignal[ids]);
+    const Float_t pex = ids < 0 ? 0. : ( ids >= range ? 0. : fLoGainSignal[ids]);
     sum              += fAmpWeightsLoGain [idx]*pex; 
     time_sum         += fTimeWeightsLoGain[idx]*pex;
Index: trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.h	(revision 5527)
+++ trunk/MagicSoft/Mars/msignal/MExtractTimeAndChargeDigitalFilter.h	(revision 5528)
@@ -61,5 +61,6 @@
 
   MExtractTimeAndChargeDigitalFilter(const char *name=NULL, const char *title=NULL);  
-
+  ~MExtractTimeAndChargeDigitalFilter() { }
+  
   Bool_t WriteWeightsFile(TString filename,
                           TH1F *shapehi, TH2F *autocorrhi,
