diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MdtDigitToMdtRDO.cxx b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MdtDigitToMdtRDO.cxx
index 2e69f7421a4a86d179d64c11f39cb1c56a69cce3..689dfbe4ed13bbc0e31f9b9f28ed442974023c77 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MdtDigitToMdtRDO.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MdtDigitToMdtRDO.cxx
@@ -123,7 +123,7 @@ StatusCode MdtDigitToMdtRDO::fill_MDTdata(const EventContext& ctx) const {
 	ATH_MSG_ERROR( name << " "
                        << eta << " " << phi << " "
                        << "and dummy multilayer=1, layer=1, tube=1 ."  );
-        std::abort();
+        return StatusCode::FAILURE;
       } 
 
       Identifier chid1, chid2;
@@ -173,7 +173,7 @@ StatusCode MdtDigitToMdtRDO::fill_MDTdata(const EventContext& ctx) const {
 	    ATH_MSG_ERROR( name << " "
                            << eta << " " << phi << " "
                            << " and dummy multilayer=1, layer=1, tube=1 ."  );
-            std::abort();
+            return StatusCode::FAILURE;
 	  } 
 
 	  mdtCsm_2nd = new MdtCsm(chid2, elementHash_2nd, subsystem_2ndcsm, mrod_2ndcsm, link_2ndcsm);
@@ -200,13 +200,21 @@ StatusCode MdtDigitToMdtRDO::fill_MDTdata(const EventContext& ctx) const {
 					     subsystem, mrod, link, 
 					     tdc, channel);
 	            
-	      if (!cabling) {
-		ATH_MSG_ERROR( "MDTcabling can't return an online ID for the channel : "  );
-		ATH_MSG_ERROR( name << " "
-                               << eta << " " << phi << " "
-                               << multilayer << " " << layer << " " << tube  );
-                std::abort();
-	      } 
+        if (!cabling) {
+          // as long as there is no BIS78 cabling, to avoid a hard crash, replace the tubeNumber
+          // of tubes not covered in the cabling by 1
+          if (m_idHelperSvc->mdtIdHelper().stationName(channelId)==1
+             && std::abs(m_idHelperSvc->mdtIdHelper().stationEta(channelId))>6
+             && m_idHelperSvc->issMdt(channelId)) {
+             ATH_MSG_WARNING("Found BIS78 sMDT with tubeLayer="<<layer<<" and tubeNumber="<<tube<<". Setting to 1,1 for now...");
+            cabling = readCdo->getOnlineId(name, eta, phi, multilayer, 1, 1,subsystem, mrod, link, tdc, channel);
+          }
+          if (!cabling) {
+            ATH_MSG_ERROR( "MDTcabling can't return an online ID for the channel : "  );
+            ATH_MSG_ERROR( name << " " << eta << " " << phi << " " << multilayer << " " << layer << " " << tube  );
+            return StatusCode::FAILURE;
+          }
+        } 
 
 	      bool masked = mdtDigit->is_masked();
 	      // Create the new AMT hit
diff --git a/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx
index 2db59976e68639cabc410b672d4c4997991c3de9..9bce3813df2ab0778d5d5d0ecbb48ceff19a057d 100644
--- a/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx
+++ b/MuonSpectrometer/MuonDigitization/RPC_Digitization/src/RpcDigitizationTool.cxx
@@ -608,7 +608,14 @@ StatusCode RpcDigitizationTool::doDigitization(const EventContext& ctx, RpcDigit
       const HepMcParticleLink::PositionFlag idxFlag = (phit.eventId()==0) ? HepMcParticleLink::IS_POSITION: HepMcParticleLink::IS_INDEX;
       const HepMcParticleLink particleLink(phit->trackNumber(),phit.eventId(),evColl,idxFlag);
 
-      ATH_CHECK(DetectionEfficiency(ctx, &atlasRpcIdeta,&atlasRpcIdphi, undefPhiStripStat, rndmEngine, particleLink));
+      // as long there is no proper implementation of the BIS78 cabling and digitisation,
+      // skip this method to avoid hard crash of digitisation
+      if (stationName.find("BIS")!=std::string::npos && std::abs(stationEta)>6) {
+        ATH_MSG_WARNING("skipping DetectionEfficiency for BIS78");
+      } else {
+        ATH_CHECK(DetectionEfficiency(ctx, &atlasRpcIdeta,&atlasRpcIdphi, undefPhiStripStat, rndmEngine, particleLink));
+      }
+
       ATH_MSG_DEBUG ( "SetPhiOn " << m_SetPhiOn << " SetEtaOn " <<  m_SetEtaOn );
 
       for( int imeasphi=0 ;  imeasphi!=2;  ++imeasphi){
@@ -2092,7 +2099,7 @@ int RpcDigitizationTool::ClusterSizeEvaluation(const EventContext& ctx, const Id
     index += m_FracClusterSize1_A.size()/2*measuresPhi ;
     if( index>m_FracClusterSize1_A.size()    || index>m_FracClusterSize2_A.size() ||
 	index>m_FracClusterSizeTail_A.size() || index>m_MeanClusterSizeTail_A.size() ) {
-      ATH_MSG_ERROR ( "Index out of array in ClusterSizeEvaluation SideA " << index <<" statName "<<stationName) ;
+      ATH_MSG_WARNING ( "Index out of array in ClusterSizeEvaluation SideA " << index <<" statName "<<stationName) ;
       return 1;
     }
     FracClusterSize1    = m_FracClusterSize1_A      [index];
@@ -2104,7 +2111,7 @@ int RpcDigitizationTool::ClusterSizeEvaluation(const EventContext& ctx, const Id
       index += m_FracClusterSize1_C.size()/2*measuresPhi - m_FracClusterSize1_A.size()/2*measuresPhi ;
       if( index>m_FracClusterSize1_C.size()    || index>m_FracClusterSize2_C.size() ||
 	  index>m_FracClusterSizeTail_C.size() || index>m_MeanClusterSizeTail_C.size() ) {
-	ATH_MSG_ERROR ( "Index out of array in ClusterSizeEvaluation SideC " << index <<" statName "<<stationName) ;
+	ATH_MSG_WARNING ( "Index out of array in ClusterSizeEvaluation SideC " << index <<" statName "<<stationName) ;
 	return 1;
       }
 
@@ -2145,7 +2152,7 @@ int RpcDigitizationTool::ClusterSizeEvaluation(const EventContext& ctx, const Id
       index += m_FracClusterSize1_A.size()/2*measuresPhi ;
       if( index>m_FracClusterSize1_A.size()    || index>m_FracClusterSize2_A.size() ||
 	  index>m_FracClusterSizeTail_A.size() || index>m_MeanClusterSizeTail_A.size() ) {
-	ATH_MSG_ERROR ( "Index out of array in ClusterSizeEvaluation SideA " << index << " statName "<<stationName) ;
+	ATH_MSG_WARNING ( "Index out of array in ClusterSizeEvaluation SideA " << index << " statName "<<stationName) ;
 	return 1;
       }
       FracClusterSize1	= m_FracClusterSize1_A      [index];
@@ -2157,7 +2164,7 @@ int RpcDigitizationTool::ClusterSizeEvaluation(const EventContext& ctx, const Id
 	index += m_FracClusterSize1_C.size()/2*measuresPhi - m_FracClusterSize1_A.size()/2*measuresPhi ;
 	if( index>m_FracClusterSize1_C.size()    || index>m_FracClusterSize2_C.size() ||
 	    index>m_FracClusterSizeTail_C.size() || index>m_MeanClusterSizeTail_C.size() ) {
-	  ATH_MSG_ERROR ( "Index out of array in ClusterSizeEvaluation SideC " << index << " statName "<<stationName ) ;
+	  ATH_MSG_WARNING ( "Index out of array in ClusterSizeEvaluation SideC " << index << " statName "<<stationName ) ;
 	  return 1;
 	}