diff --git a/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx b/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx
index 46564aba178c6fe071907f24608bba1e7049bc60..98aab969cf5e336353138431417f308af500f53f 100644
--- a/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx
+++ b/MQ/mcbm/CbmDeviceBuildDigiEvents.cxx
@@ -70,6 +70,7 @@ try {
   fvsSetTrigMaxNb       = fConfig->GetValue<std::vector<std::string>>("SetTrigMaxNb");
   fvsSetTrigMinLayersNb = fConfig->GetValue<std::vector<std::string>>("SetTrigMinLayersNb");
 
+  fbDoNotSend              = fConfig->GetValue<bool>("DoNotSend");
   fsChannelNameDataInput   = fConfig->GetValue<std::string>("TsNameIn");
   fsChannelNameDataOutput  = fConfig->GetValue<std::string>("EvtNameOut");
   fsChannelNameHistosInput = fConfig->GetValue<std::string>("ChNameIn");
@@ -137,7 +138,7 @@ try {
     }
   }
 
-     /// Extract detector to remove if any
+  /// Extract detector to remove if any
   for (std::vector<std::string>::iterator itStrRem = fvsDelDet.begin();
        itStrRem != fvsDelDet.end();
        ++itStrRem) {
@@ -152,7 +153,8 @@ try {
       continue;
     }
   }
-     /// Extract Trigger window to add if any
+
+  /// Extract Trigger window to add if any
   for (std::vector<std::string>::iterator itStrTrigWin = fvsSetTrigWin.begin();
        itStrTrigWin != fvsSetTrigWin.end();
        ++itStrTrigWin) {
@@ -257,9 +259,9 @@ try {
 
     /// Max number
     charPosDel++;
-    UInt_t uMaxNb = std::stoul((*itStrMaxNb).substr(charPosDel));
+    Int_t iMaxNb = std::stol((*itStrMaxNb).substr(charPosDel));
 
-    fpAlgo->SetTriggerMaxNumber(selDet, uMaxNb);
+    fpAlgo->SetTriggerMaxNumber(selDet, iMaxNb);
   }
 
   /// Extract MinLayersNb for trigger if any
@@ -541,7 +543,7 @@ bool CbmDeviceBuildDigiEvents::HandleData(FairMQParts& parts, int /*index*/)
   fpAlgo->ProcessTs();
 
   /// Send events vector to ouput
-  if (!SendEvents(parts)) return false;
+  if (!fbDoNotSend && !SendEvents(parts)) return false;
 
   /// Clear metadata
   fTimeSliceMetaDataArray->Clear();
@@ -707,23 +709,25 @@ bool CbmDeviceBuildDigiEvents::SendHistograms()
 CbmDeviceBuildDigiEvents::~CbmDeviceBuildDigiEvents()
 {
   /// Clear metadata
-  delete fCbmTsEventHeader;
+  if (fCbmTsEventHeader) delete fCbmTsEventHeader;
 
   /// Clear vectors
-  fvDigiT0->clear();
-  fvDigiSts->clear();
-  fvDigiMuch->clear();
-  fvDigiTrd->clear();
-  fvDigiTof->clear();
-  fvDigiRich->clear();
-  fvDigiPsd->clear();
+  if (fvDigiT0) fvDigiT0->clear();
+  if (fvDigiSts) fvDigiSts->clear();
+  if (fvDigiMuch) fvDigiMuch->clear();
+  if (fvDigiTrd) fvDigiTrd->clear();
+  if (fvDigiTof) fvDigiTof->clear();
+  if (fvDigiRich) fvDigiRich->clear();
+  if (fvDigiPsd) fvDigiPsd->clear();
 
   /// Clear metadata
-  fTimeSliceMetaDataArray->Clear();
-  delete fTsMetaData;
+  if (fTimeSliceMetaDataArray) {
+    fTimeSliceMetaDataArray->Clear();
+    delete fTsMetaData;
 
-  delete fTimeSliceMetaDataArray;
-  delete fpAlgo;
+    delete fTimeSliceMetaDataArray;
+  }
+  if (fpAlgo) delete fpAlgo;
 }
 
 void CbmDeviceBuildDigiEvents::Finish() {}
diff --git a/MQ/mcbm/CbmDeviceBuildDigiEvents.h b/MQ/mcbm/CbmDeviceBuildDigiEvents.h
index bd1e9dbe2772e6d8189c60b8c4f357b7d970f572..6632cd3ae10dfa136ac01de7b4d5835a261cbc5b 100644
--- a/MQ/mcbm/CbmDeviceBuildDigiEvents.h
+++ b/MQ/mcbm/CbmDeviceBuildDigiEvents.h
@@ -65,6 +65,8 @@ private:
   std::vector<std::string> fvsSetTrigMinNb       = {};
   std::vector<std::string> fvsSetTrigMaxNb       = {};
   std::vector<std::string> fvsSetTrigMinLayersNb = {};
+  /// I/O control
+  bool fbDoNotSend = false;
   /// message queues
   std::string fsChannelNameDataInput   = "unpts_0";
   std::string fsChannelNameDataOutput  = "events";
diff --git a/MQ/mcbm/runBuildDigiEvents.cxx b/MQ/mcbm/runBuildDigiEvents.cxx
index a1184c1d8f16681d410d8bac3bd649592f14604c..97be32d5a20c0fe4a36fd2dd8e675eea78b93699 100644
--- a/MQ/mcbm/runBuildDigiEvents.cxx
+++ b/MQ/mcbm/runBuildDigiEvents.cxx
@@ -38,6 +38,7 @@ void addCustomOptions(bpo::options_description& options)
   options.add_options()("SetTrigMinLayersNb", bpo::value<std::vector<std::string>>()->multitoken()->composing(),
                         "Set minimum number of fired layers for selected detector, use string matching "
                         "ECbmModuleId,uMinLayersNb e.g. kTof,3");
+  options.add_options()("DoNotSend", bpo::value<bool>()->default_value(false), "Disable the sending of data if true");
   options.add_options()("TsNameIn", bpo::value<std::string>()->default_value("unpts_0"),
                         "MQ channel name for unpacked TS data");
   options.add_options()("EvtNameOut", bpo::value<std::string>()->default_value("events"),