Index: trunk/MagicSoft/Mars/mcalib/MCalibrateRelTimes.cc
===================================================================
--- trunk/MagicSoft/Mars/mcalib/MCalibrateRelTimes.cc	(revision 7842)
+++ trunk/MagicSoft/Mars/mcalib/MCalibrateRelTimes.cc	(revision 7843)
@@ -133,4 +133,10 @@
         (*fArrivalTime)[idx].SetArrivalTime(signal-offset);
         (*fArrivalTime)[idx].SetLoGainUsed(sig.IsLoGainUsed());
+
+        // FIXME: This is just a workaround to set pixels to bad for which
+        // the extraction of hi- and lo-gain failed, should be moved to
+        // the extraction
+        if (!sig.IsLoGainValid() && !sig.IsHiGainValid())
+            (*fBadPixels)[idx].SetUnsuitable(MBadPixelsPix::kUnsuitableEvt);
     }
 
Index: trunk/MagicSoft/Mars/msignal/MArrivalTimePix.h
===================================================================
--- trunk/MagicSoft/Mars/msignal/MArrivalTimePix.h	(revision 7842)
+++ trunk/MagicSoft/Mars/msignal/MArrivalTimePix.h	(revision 7843)
@@ -14,6 +14,6 @@
   Float_t fArrivalTimeLoGainError; // error of the mean value of the ArrivalTime
 
-  Byte_t fNumHiGainSaturated;
-  Byte_t fNumLoGainSaturated;
+  Byte_t fNumHiGainSaturated;      // Number of first hi-gain slice which has saturated (could be negative if already the first slice saturates)
+  Byte_t fNumLoGainSaturated;      // Number of first lo-gain slices which have saturated
 
 public:
@@ -53,4 +53,6 @@
 
     Bool_t IsLoGainUsed()               const { return fNumHiGainSaturated > 0; }
+    Bool_t IsLoGainValid()              const { return fArrivalTimeLoGainError>=0 && fNumLoGainSaturated==0; }
+    Bool_t IsHiGainValid()              const { return fArrivalTimeHiGainError>=0 && fNumHiGainSaturated==0; }
     Bool_t IsValid()                    const;   
 
