diff --git a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx
index 9f3560d6fb994b8c12ca7f4661154ee177717d4d..a86e114f2eb737daa1ca4a6633ebc425a306de1b 100644
--- a/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx
+++ b/MuonSpectrometer/MuonCnv/MuonByteStreamCnvTest/src/MM_DigitToRDO.cxx
@@ -70,7 +70,29 @@ StatusCode MM_DigitToRDO::execute()
 
 	for ( unsigned int i=0 ; i<nstrips ; ++i ) {
 
-	  MM_RawData* rdo = new MM_RawData(id,
+	  ///
+	  /// set the rdo id to a value consistent with the channel number
+	  /// 
+	  bool isValid;
+	  int stationName = m_idHelper->stationName(id);
+	  int stationEta  = m_idHelper->stationEta(id);
+	  int stationPhi  = m_idHelper->stationPhi(id);
+	  int multilayer  = m_idHelper->multilayer(id);
+	  int gasGap      = m_idHelper->gasGap(id);
+	  ///
+	  int channel     = digit->stripResponsePosition().at(i);
+
+	  Identifier newId = m_idHelper->channelID(stationName,stationEta,
+						   stationPhi,multilayer,gasGap,channel,true,&isValid);
+
+	  if (!isValid) {
+	    ATH_MSG_WARNING("Invalid MM identifier. StationName="<<stationName <<
+			    " stationEta=" << stationEta << " stationPhi=" << stationPhi << 
+			    " multi=" << multilayer << " gasGap=" << gasGap << " channel=" << channel);
+	    continue;
+	  } 
+
+	  MM_RawData* rdo = new MM_RawData(newId,
 					   digit->stripResponsePosition().at(i),
 					   digit->stripResponseTime().at(i),
 					   digit->stripResponseCharge().at(i));