diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/src/InDetOverlay.cxx b/InnerDetector/InDetRawAlgs/InDetOverlay/src/InDetOverlay.cxx
index 0a189eabd2d25ea2890019d999364f41034cf5a6..57dca7bb69e79b64172250c4597820c80e5e6235 100755
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/src/InDetOverlay.cxx
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/src/InDetOverlay.cxx
@@ -99,7 +99,7 @@ namespace Overlay {
       {	
 	const Identifier ident = (*firstData)->identify();
 	const unsigned int word = (*firstData)->getWord();
-	SCT3_RawData* oldData = dynamic_cast<SCT3_RawData*>(*firstData);	
+	const SCT3_RawData* oldData = dynamic_cast<const SCT3_RawData*>(*firstData);	
 	std::vector<int> errorHit=oldData->getErrorCondensedHit();
 	SCT3_RawData * newData=new SCT3_RawData(ident,word, &errorHit);
 	copy_coll->push_back (newData );
@@ -126,11 +126,11 @@ namespace Overlay {
     typedef std::multimap<int, const SCT_RDO_TYPE*> StripMap;
 
     void fillStripMap(StripMap *sm, const InDetRawDataCollection<SCT_RDORawData> &rdo_coll, const std::string& collectionName, InDetOverlay *parent) {
-      for(InDetRawDataCollection<SCT_RDORawData>::const_iterator i=rdo_coll.begin(); i!=rdo_coll.end(); ++i) {
-        const SCT_RDO_TYPE *rdo = dynamic_cast<const SCT_RDO_TYPE*>(&**i);
+      for (const SCT_RDORawData* elt : rdo_coll) {
+        const SCT_RDO_TYPE *rdo = dynamic_cast<const SCT_RDO_TYPE*>(elt);
         if(!rdo) {
           std::ostringstream os;
-          os<<"mergeCollection<SCT_RDORawData>(): wrong datum format for the '"<<collectionName<<"' collection. Only SCT3_RawData are produced by SCT_RodDecoder and supported by overlay.   For the supplied datum  typeid(datum).name() = "<<typeid(**i).name();
+          os<<"mergeCollection<SCT_RDORawData>(): wrong datum format for the '"<<collectionName<<"' collection. Only SCT3_RawData are produced by SCT_RodDecoder and supported by overlay.   For the supplied datum  typeid(datum).name() = "<<typeid(*elt).name();
           throw std::runtime_error(os.str());
         }