diff --git a/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx b/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx
index aa1b683f4f5fada9fcd60331becec68291bb8ed7..e1e0472ef521b48a59ca9e3e3e5198b6176ac2f6 100644
--- a/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx
+++ b/MuonSpectrometer/MuonGeoModelTest/src/MuonGMCheck.cxx
@@ -1611,6 +1611,25 @@ void MuonGMCheck::checkreadoutmdtgeo()
 			 if (mdt->hasCutouts()) tubeStep = 1;
                          for (int tube = 1; tube<mdt->getNtubesperlayer()+1;)
                          {
+			   if(mdt->hasCutouts()){ //check that the tube exists if there are cutouts
+                             PVConstLink cv = mdt->getMaterialGeom();
+                             int nGrandchildren = cv->getNChildVols();
+                             if(nGrandchildren <= 0) continue;
+                             bool tubefound = false;
+                             for(unsigned int kk=0; kk < cv->getNChildVols(); kk++) {
+                               int tubegeo = cv->getIdOfChildVol(kk) % 100;
+                               int layergeo = ( cv->getIdOfChildVol(kk) - tubegeo ) / 100;
+                               if( tubegeo == tube && layergeo == tl ) {
+                                 tubefound=true;
+                                 break;
+                               }
+                               if( layergeo > tl ) break;
+                             }
+                             if(!tubefound){
+			       tube+=tubeStep;
+                               continue;
+                             }
+                           }
                              gotTube = tube;
                              chid   = p_MdtIdHelper->channelID(idp,mdt->getMultilayer(), tl, tube);
                              fout<<p_MdtIdHelper->show_to_string(chid)