diff --git a/src/THcScalerEvtHandler.cxx b/src/THcScalerEvtHandler.cxx
index 423aad86a095cda84d5a2919b3d32f5603030a74..5e3bdbbab90d967b5f568905d9314f5720a0927d 100644
--- a/src/THcScalerEvtHandler.cxx
+++ b/src/THcScalerEvtHandler.cxx
@@ -103,7 +103,7 @@ Int_t THcScalerEvtHandler::End( THaRunBase* r)
     AnalyzeBuffer(rdata,kFALSE);
   }
   if (fDebugFile) *fDebugFile << "scaler tree ptr  "<<fScalerTree<<endl;
-
+    evNumberR = -1;
   if (fScalerTree) fScalerTree->Fill();
 
   fDelayedEvents.clear();	// Does this free the arrays?
@@ -207,6 +207,10 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata)
     name = "evcount";
     tinfo = name + "/D";
     fScalerTree->Branch(name.Data(), &evcountR, tinfo.Data(), 4000);
+ 
+   name = "evNumber";
+    tinfo = name + "/D";
+    fScalerTree->Branch(name.Data(), &evNumberR, tinfo.Data(), 4000);
 
     for (size_t i = 0; i < scalerloc.size(); i++) {
       name = scalerloc[i]->name;
@@ -220,6 +224,7 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata)
 
   if( evdata->GetEvType() == fDelayedType) { // Save this event for processing later
     Int_t evlen = evdata->GetEvLength();
+    
     UInt_t *datacopy = new UInt_t[evlen];
     fDelayedEvents.push_back(datacopy);
     for(Int_t i=0;i<evlen;i++) {
@@ -227,7 +232,9 @@ Int_t THcScalerEvtHandler::Analyze(THaEvData *evdata)
     }
     return 1;
   } else { 			// A normal event
-    if (fDebugFile) *fDebugFile<<"\n\nTHcScalerEvtHandler :: Debugging event type "<<dec<<evdata->GetEvType()<<endl<<endl;
+    if (fDebugFile) *fDebugFile<<"\n\nTHcScalerEvtHandler :: Debugging event type "<<dec<<evdata->GetEvType()<< " event num = " << evdata->GetEvNum() << endl<<endl;
+    evNumber=evdata->GetEvNum();
+    evNumberR = evNumber;
     Int_t ret;
     if((ret=AnalyzeBuffer(rdata,fOnlySyncEvents))) {
       if (fDebugFile) *fDebugFile << "scaler tree ptr  "<<fScalerTree<<endl;
@@ -344,6 +351,11 @@ Int_t THcScalerEvtHandler::AnalyzeBuffer(UInt_t* rdata, Bool_t onlysync)
   fTotalTime = (thisClock+(((Double_t) fClockOverflows)*kMaxUInt+fClockOverflows))/fClockFreq;
   fLastClock = thisClock;
   fDeltaTime= fTotalTime - fPrevTotalTime;
+  if (fDeltaTime==0) {
+    cout << " *******************   Severe Warning ****************************" << endl;
+    cout << " In THcScalerEvtHandler have found fDeltaTime is zero !!   " << endl;
+      cout << " ******************* Alert DAQ experts ****************************" << endl;
+  }
   fPrevTotalTime=fTotalTime;
   Int_t nscal=0;
   for (size_t i = 0; i < scalerloc.size(); i++)  {
diff --git a/src/THcScalerEvtHandler.h b/src/THcScalerEvtHandler.h
index b31a5df71042a6de2296a1965fba551617af624e..cca447e3ccb8f6795a313ad4fc267ed5e78fb613 100644
--- a/src/THcScalerEvtHandler.h
+++ b/src/THcScalerEvtHandler.h
@@ -65,6 +65,8 @@ private:
    char** fBCM_Name;
    UInt_t evcount;
    Double_t evcountR;
+   UInt_t evNumber;
+   Double_t evNumberR;
    Int_t Nvars, ifound, fNormIdx, nscalers;
    Double_t *dvars;
    UInt_t *dvars_prev_read;