diff --git a/reco/global/CbmRecoTzero.cxx b/reco/global/CbmRecoTzero.cxx
index e9d2e6099ab31c074f4c5134b38c37583856c12b..a3af8389fea3d1fd6657840726a053c1f620374b 100644
--- a/reco/global/CbmRecoTzero.cxx
+++ b/reco/global/CbmRecoTzero.cxx
@@ -90,7 +90,7 @@ void CbmRecoTzero::Exec(Option_t*)
   for (Int_t iEvent = 0; iEvent < nEvents; iEvent++) {
     CbmEvent* event = dynamic_cast<CbmEvent*>(fEvents->At(iEvent));
     assert(event);
-    Int_t nDigis = fTzdDigis->size();
+    Int_t nDigis = event->GetNofData(ECbmDataType::kT0Digi);
     double tzero = -999999.;
     switch (nDigis) {
 
@@ -103,7 +103,8 @@ void CbmRecoTzero::Exec(Option_t*)
 
       // If there is exactly one TZD digi, take the event time from there
       case 1: {
-        tzero = fTzdDigis->at(0).GetTime();
+        uint32_t digiIndex = event->GetIndex(ECbmDataType::kT0Digi, 0);
+        tzero              = fTzdDigis->at(digiIndex).GetTime();
         tsMonitor.fNumEvtsTzd1++;
         break;
       }