diff --git a/src/THcTrigDet.cxx b/src/THcTrigDet.cxx
index 46357fd9d0be05893afc78bff3fd9a2c2b48abe8..18bc16e9e7b8ed4c70d16543d44496c7f21e83b6 100644
--- a/src/THcTrigDet.cxx
+++ b/src/THcTrigDet.cxx
@@ -275,12 +275,19 @@ Int_t THcTrigDet::Decode(const THaEvData& evData) {
       THcRawTdcHit rawTdcHit = hit->GetRawTdcHit();
     if (rawTdcHit.GetNHits() >0 && rawTdcHit.HasRefTime() && fTdcRefTime == kBig) fTdcRefTime=rawTdcHit.GetRefTime() ;
       UInt_t good_hit=999;
+      UInt_t closest_hit=999;
+      Int_t TimeDiff=1000000;
            for (UInt_t thit=0; thit<rawTdcHit.GetNHits(); ++thit) {
 	    Int_t TestTime= rawTdcHit.GetTimeRaw(thit);
+	    if (abs(TestTime-fTdcTimeWindowMin[cnt]) < TimeDiff) {
+	      closest_hit=thit;
+	      TimeDiff=abs(TestTime-fTdcTimeWindowMin[cnt]);
+	    }
 	    if (TestTime>=fTdcTimeWindowMin[cnt]&&TestTime<=fTdcTimeWindowMax[cnt]&&good_hit==999) {
 	      good_hit=thit;
 	    }
 	   }
+	   if (good_hit == 999 and closest_hit != 999) good_hit=closest_hit;
 	 if (good_hit<rawTdcHit.GetNHits()) {
       fTdcTimeRaw[cnt] = rawTdcHit.GetTimeRaw(good_hit);
       fTdcTime[cnt] = rawTdcHit.GetTime(good_hit)*fTdcChanperNS+fTdcOffset;