diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/ComputeStaveServices.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/ComputeStaveServices.h
index 7ef824a5c21b997d18526ffed52fd7ab002ad92c..a7859527f90d2e3a870e11f60949fb621ce6e222 100644
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/ComputeStaveServices.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/ComputeStaveServices.h
@@ -12,18 +12,14 @@
 class ComputeStaveServices {
 public:
 
-  ComputeStaveServices(Athena::MsgStreamMember& msg):m_msg(msg) {}
+  ComputeStaveServices() {}
 
-  StaveServices compute( DetType::Type, DetType::Part, int layerNumber, int nModulesPerStave, int nChipsPerModule) const;
+  StaveServices compute( DetType::Type, DetType::Part, int layerNumber, int nModulesPerStave, int nChipsPerModule,
+                         MsgStream& msg) const;
   int computeLVGaugeSerial( DetType::Type, DetType::Part, int layerNumber, 
 			    int nModules, double moduleCurrent, double moduleVoltage,
-			    double poweringLoss, double lossInCable, double cableLen) const;
-
- private:
-  // the message stream (same for all derived classes)
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
-  
+			    double poweringLoss, double lossInCable, double cableLen,
+                            MsgStream& msg) const;
 };
 
 #endif
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/EndPlateFactoryFS.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/EndPlateFactoryFS.h
index 62323975ae37ee873ee55a4f8f84f1cea35185f3..09f064c892a535cfd8f700083e6bfea327af72b0 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/EndPlateFactoryFS.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/EndPlateFactoryFS.h
@@ -29,7 +29,7 @@ class EndPlateFactoryFS {
   // Creation of geometry:
   void create(GeoPhysVol *motherP, GeoPhysVol *motherM);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   
@@ -40,7 +40,7 @@ class EndPlateFactoryFS {
   // private data
   StoreGateSvc                   *m_detStore;
   ServiceHandle<IRDBAccessSvc>    m_rdbAccess;
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember m_msg;
 };
 
 #endif 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactory.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactory.h
index 2b5d19214b4c6392ce5a9e3e082866652d001435..3195355944d78b0420c61fde0f4b4176b9a90318 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactory.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactory.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef INDETSERVMATGEOMODEL_INDETSERVMATFACTORY_H
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryDC2.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryDC2.h
index 0d243aed661c6208ab04c8fb00e84c1845b431f4..698712f70273d4c0bbfcc552004a941e045a32b8 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryDC2.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryDC2.h
@@ -34,7 +34,7 @@ class InDetServMatFactoryDC2 : public GeoVDetectorFactory  {
   // manager
   virtual const InDetDD::InDetServMatManager* getDetectorManager () const;
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   
@@ -46,7 +46,7 @@ class InDetServMatFactoryDC2 : public GeoVDetectorFactory  {
   StoreGateSvc                   *m_detStore;
   ServiceHandle<IRDBAccessSvc>    m_rdbAccess;
   InDetDD::InDetServMatManager   *m_manager;
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember m_msg;
 };
 
 #endif //  INDETSERVMATGEOMODEL_INDETSERVMATFACTORYDC2_H
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryFS.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryFS.h
index a2342a598d723a2fe497ab2aab0ae79d55299c6c..a8f4906ff9bb849b46e0375cd18705920cf8134d 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryFS.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatFactoryFS.h
@@ -33,7 +33,7 @@ class InDetServMatFactoryFS : public GeoVDetectorFactory  {
   // manager
   virtual const InDetDD::InDetServMatManager* getDetectorManager () const;
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   
@@ -45,7 +45,7 @@ class InDetServMatFactoryFS : public GeoVDetectorFactory  {
   StoreGateSvc                   *m_detStore;
   ServiceHandle<IRDBAccessSvc>    m_rdbAccess;
   InDetDD::InDetServMatManager   *m_manager;
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember m_msg;
 };
 
 #endif
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatGeometryManager.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatGeometryManager.h
index 2f033050610d597935028f282bed4e90d75d9ed7..8a8be6ec4382fba4fabcd7163023816fdd4010cd 100644
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatGeometryManager.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/InDetServMatGeometryManager.h
@@ -15,7 +15,7 @@ class InDetMaterialManager;
 class InDetServMatGeometryManager
 {
 public:
-  InDetServMatGeometryManager(InDetDD::AthenaComps * athenaComps) ATLAS_CTORDTOR_NOT_THREAD_SAFE; // Thread unsafe InDetDD::AthenaComps::rdbAccessSvc method is used.
+  InDetServMatGeometryManager(InDetDD::AthenaComps * athenaComps);
  
   ~InDetServMatGeometryManager();
   
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryDC2.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryDC2.h
index 03de32713da33d3feaf9b593b0f2feb190a4d3e1..066bd4fb74d519bd95e327e71d3199877c260aca 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryDC2.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryDC2.h
@@ -27,7 +27,7 @@ class PixelServMatFactoryDC2   {
   // Creation of geometry:
   void create(GeoPhysVol *mother);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   
@@ -38,7 +38,7 @@ class PixelServMatFactoryDC2   {
   // private data
   StoreGateSvc                   *m_detStore;
   ServiceHandle<IRDBAccessSvc>    m_rdbAccess;
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember m_msg;
 };
 
 #endif //  INDETSERVMATGEOMODEL_PIXELSERVMATFACTORYDC2_H
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryFS.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryFS.h
index dc8abbbc8c4560909e408064eab645bfcd83cb8c..0d1535e156ddbd695df0b0a6cb2697cb8a4bd32b 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryFS.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/PixelServMatFactoryFS.h
@@ -29,7 +29,7 @@ class PixelServMatFactoryFS   {
   // Creation of geometry:
   void create(GeoPhysVol *motherP, GeoPhysVol *motherM);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   
@@ -41,7 +41,7 @@ class PixelServMatFactoryFS   {
   StoreGateSvc                    *m_detStore;
   ServiceHandle<IRDBAccessSvc>     m_rdbAccess;
   std::unique_ptr<InDetMaterialManager> m_materialManager;
-  mutable Athena::MsgStreamMember  m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember  m_msg;
 
 };
 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryDC2.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryDC2.h
index abbdab708e9c6ca2e285fcc3c2bafbce19537875..4cb39442ecf323e59420f4277f670b14bd265b08 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryDC2.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryDC2.h
@@ -31,7 +31,7 @@ class SCT_ServMatFactoryDC2   {
   // Creation of geometry:
   void create(GeoPhysVol *mother);
 
-  MsgStream& msg (MSG::Level lvl) const{ return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   const GeoShape* createShape(int volType, 
@@ -58,7 +58,7 @@ class SCT_ServMatFactoryDC2   {
   StoreGateSvc                   *m_detStore;
   ServiceHandle<IRDBAccessSvc>    m_rdbAccess;
   const StoredMaterialManager    *m_materialManager;
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember m_msg;
 };
 
 #endif //  INDETSERVMATGEOMODEL_SCT_SERVMATFACTORYDC2_H
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryFS.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryFS.h
index f5f519f807769be7ad64bfe26c65a36e57c0089b..81191541a60c15eab534647392218a4653a067f6 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryFS.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SCT_ServMatFactoryFS.h
@@ -31,7 +31,7 @@ class SCT_ServMatFactoryFS   {
   // Creation of geometry:
   void create(GeoPhysVol *motherP, GeoPhysVol *motherM);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:
 
@@ -43,7 +43,7 @@ class SCT_ServMatFactoryFS   {
   StoreGateSvc                    *m_detStore;
   ServiceHandle<IRDBAccessSvc>     m_rdbAccess;
   std::unique_ptr<InDetMaterialManager> m_materialManager;
-  mutable Athena::MsgStreamMember  m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember  m_msg;
 
 };
 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SquirrelCageFactoryFS.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SquirrelCageFactoryFS.h
index 991d968647ffe2fe33392f2746f2d84a31b12916..137b8a0975bada1f43f3841e2e166087c3dfa716 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SquirrelCageFactoryFS.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SquirrelCageFactoryFS.h
@@ -27,7 +27,7 @@ class SquirrelCageFactoryFS {
   // Creation of geometry:
   void create(GeoPhysVol *motherP, GeoPhysVol *motherM);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   
@@ -38,7 +38,7 @@ class SquirrelCageFactoryFS {
   // private data
   StoreGateSvc                   *m_detStore;
   ServiceHandle<IRDBAccessSvc>    m_rdbAccess;
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember m_msg;
 };
 
 #endif 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SupportRailFactoryFS.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SupportRailFactoryFS.h
index bc8f7ffb0abad50941fac21799f31945d0ee4764..12690bcff76e97efb70d3a1bdc0950727043ec5f 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SupportRailFactoryFS.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/SupportRailFactoryFS.h
@@ -27,7 +27,7 @@ class SupportRailFactoryFS {
   // Creation of geometry:
   void create(GeoPhysVol *motherP,GeoPhysVol *motherM);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   
@@ -38,7 +38,7 @@ class SupportRailFactoryFS {
   // private data
   StoreGateSvc                    *m_detStore;
   ServiceHandle<IRDBAccessSvc>     m_rdbAccess;
-  mutable Athena::MsgStreamMember  m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember  m_msg;
 
 };
 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryDC2.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryDC2.h
index 3daf7df92fa91e7c75649a4aa2c8ede56296d838..e23b3cf8149fc982f0fff97a56dabf790f1e5a1f 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryDC2.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryDC2.h
@@ -31,7 +31,7 @@ class TRT_ServMatFactoryDC2   {
   // Creation of geometry:
   void create(GeoPhysVol *mother);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:  
   const GeoShape* createShape(int volType, 
@@ -57,7 +57,7 @@ class TRT_ServMatFactoryDC2   {
   StoreGateSvc                   *m_detStore;
   ServiceHandle<IRDBAccessSvc>    m_rdbAccess;
   const StoredMaterialManager    *m_materialManager;
-  mutable Athena::MsgStreamMember m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember m_msg;
 };
 
 #endif //  INDETSERVMATGEOMODEL_TRT_SERVMATFACTORYDC2_H
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryFS.h b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryFS.h
index 4f7e28e66fe49abe9dcfcb8e981dc771642703a1..399c2dfad3999b6e28ecd052d743804f4f2a4d35 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryFS.h
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/InDetServMatGeoModel/TRT_ServMatFactoryFS.h
@@ -31,7 +31,7 @@ class TRT_ServMatFactoryFS   {
   // Creation of geometry:
   void create(GeoPhysVol *motherP, GeoPhysVol *motherM);
 
-  MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl; }
+  MsgStream& msg (MSG::Level lvl) { return m_msg << lvl; }
 
  private:
 
@@ -43,7 +43,7 @@ class TRT_ServMatFactoryFS   {
   StoreGateSvc                    *m_detStore;
   ServiceHandle<IRDBAccessSvc>     m_rdbAccess;
   std::unique_ptr<InDetMaterialManager> m_materialManager;
-  mutable Athena::MsgStreamMember  m_msg ATLAS_THREAD_SAFE;
+  Athena::MsgStreamMember  m_msg;
 };
 
 #endif 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ComputeStaveServices.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ComputeStaveServices.cxx
index 96dab7f6184a27d97320a6aa80456869a9f67397..e4d83626c74ee3ed3e60deb389662c94eacfd5c5 100644
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ComputeStaveServices.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ComputeStaveServices.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "InDetServMatGeoModel/ComputeStaveServices.h"
@@ -11,10 +11,11 @@ using namespace std;
 
 
 StaveServices ComputeStaveServices::compute( DetType::Type type, DetType::Part part, int layerNumber,
-					     int nModulesPerStave, int nChipsPerModule) const
+					     int nModulesPerStave, int nChipsPerModule,
+                                             MsgStream& msg) const
 
 {
-  msg(MSG::DEBUG) << "Computing services for " << DetType::name( type, part) << " layer " << layerNumber 
+  msg << MSG::DEBUG << "Computing services for " << DetType::name( type, part) << " layer " << layerNumber 
 		  << " with " << nModulesPerStave << " modulesPerStave and " 
 		  << nChipsPerModule << " chipsPerModule" << endmsg;
   
@@ -63,12 +64,13 @@ StaveServices ComputeStaveServices::compute( DetType::Type type, DetType::Part p
     nGroups = nModulesPerStave / max_SP_group_size;
     if (nModulesPerStave % max_SP_group_size != 0) nGroups++;
     nModules =  max_SP_group_size;
-    msg(MSG::DEBUG) << "Using " << nGroups << " powering groups with " << max_SP_group_size << " modules each" << endl;
+    msg << MSG::DEBUG  << "Using " << nGroups << " powering groups with " << max_SP_group_size << " modules each" << endl;
   }
 
   int lvGauge = computeLVGaugeSerial( type, part, layerNumber, 
 				      nModules, moduleCurrent, moduleVoltage,
-				      poweringLoss, lossInCable, cableLen);
+				      poweringLoss, lossInCable, cableLen,
+                                      msg);
 
   std::vector<int> lvg( nGroups, lvGauge);
   return StaveServices( type, part, layerNumber, nHV, nDCS, nData, lvg);
@@ -92,7 +94,8 @@ int computeLVGauge( int nModules, double moduleCurrent, double moduleVoltage, in
 */
 int ComputeStaveServices::computeLVGaugeSerial( DetType::Type type, DetType::Part part, int layerNumber,
 						int nModules, double moduleCurrent, double moduleVoltage,
-						double poweringLoss, double lossInCable, double cableLen) const
+						double poweringLoss, double lossInCable, double cableLen,
+                                                MsgStream& msg) const
 {
   /*
   cout << "computeLVGaugeSerial: nModules = " << nModules
@@ -115,8 +118,8 @@ int ComputeStaveServices::computeLVGaugeSerial( DetType::Type type, DetType::Par
 
   int gauge = ccaw::closestResistivityCcawGauge( resistivityPerMeter);
 
-  msg(MSG::DEBUG) << DetType::name( type, part) << " layer " << layerNumber
-		  << " SP loop power " << stavePower << " [W], current " << moduleCurrent 
+  msg << MSG::DEBUG  << DetType::name( type, part) << " layer " << layerNumber
+                     << " SP loop power " << stavePower << " [W], current " << moduleCurrent 
     // << " [A], cablePowerLoss " << cablePowerDissipation 
 		  << " [W], desired resistivity " << resistivityPerMeter 
 		  << " [Ohm/m], closest gauge " << gauge << endl;
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx
index a546533a46ccbe302b92972c7db07e534ca9a81f..f45a3bb7074f33852f2e28731cfcbab7a832c2f4 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx
@@ -43,7 +43,7 @@ EndPlateFactory::~EndPlateFactory()
 
 
 //## Other Operations (implementation)
-void EndPlateFactory::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother)
+void EndPlateFactory::create(GeoPhysVol *mother)
 {
    DecodeVersionKey indetVersionKey(geoDbTagSvc(),"InnerDetector");
    IRDBRecordset_ptr shell  = rdbAccessSvc()->getRecordsetPtr("EPShell",  indetVersionKey.tag(), indetVersionKey.node());
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx
index c98f38a78497da2e85a241f56c6d36e0ba5fd724..311a0fbeb142e3bb7e46f0806bb799bbea854543 100644
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx
@@ -53,7 +53,7 @@ InDetServMatBuilderToolSLHC::~InDetServMatBuilderToolSLHC()
 
 
 //================ Initialize =================================================
-StatusCode InDetServMatBuilderToolSLHC::initialize ATLAS_NOT_THREAD_SAFE () // Thread unsafe build method is used.
+StatusCode InDetServMatBuilderToolSLHC::initialize()
 {
   
   StatusCode sc = AlgTool::initialize();
@@ -106,13 +106,13 @@ const std::vector<const InDetDD::ServiceVolume *> & InDetServMatBuilderToolSLHC:
   return m_services;
 }
 
-void InDetServMatBuilderToolSLHC::geoInit ATLAS_NOT_THREAD_SAFE () // Thread unsafe InDetServMatGeometryManager constructor is used.
+void InDetServMatBuilderToolSLHC::geoInit()
 {
   m_geoMgr = new InDetServMatGeometryManager(m_athenaComps);
 }
 
 
-void InDetServMatBuilderToolSLHC::build ATLAS_NOT_THREAD_SAFE () // 
+void InDetServMatBuilderToolSLHC::build()
 {
   // Do nothing if services are not to be built.
   geoInit();
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx
index f5168e20530f4eba581799f38369b0d4b572dfd0..90d46fee057c8fbfbd70c5def4fd3ce4f5a2b395 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx
@@ -56,7 +56,7 @@ InDetServMatFactory::~InDetServMatFactory()
 
 
 //## Other Operations (implementation)
-void InDetServMatFactory::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *world ) // Thread unsafe rdbAccessSvc method and InDetMaterialManager constructor are used.
+void InDetServMatFactory::create(GeoPhysVol *world )
 {
 
   // create a new det manager
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx
index da80a1fb0eac267d9066fadb688259472549eaca..23de53ce9dbdccb880e7c4eacde3be131dea8e8e 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx
@@ -54,7 +54,7 @@ InDetServMatFactoryDC3::~InDetServMatFactoryDC3()
 
 
 //## Other Operations (implementation)
-void InDetServMatFactoryDC3::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *world ) // Thread unsafe rdbAccessSvc method is used.
+void InDetServMatFactoryDC3::create(GeoPhysVol *world )
 {
 
 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx
index 5ddc937358ace1917cb9c1f085aa7171997e0b69..734e6a88ccc12817337327f168be237259347c05 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx
@@ -59,7 +59,7 @@ InDetServMatFactorySLHC::~InDetServMatFactorySLHC()
 
 
 //## Other Operations (implementation)
-void InDetServMatFactorySLHC::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *world ) // Thread unsafe InDetMaterialManager constructor and fetchTables method are used.
+void InDetServMatFactorySLHC::create(GeoPhysVol *world )
 {
 
   // Get the material manager:  
@@ -133,7 +133,7 @@ const InDetDD::InDetServMatManager* InDetServMatFactorySLHC::getDetectorManager
 }
 
 void
-InDetServMatFactorySLHC::fetchTables ATLAS_NOT_THREAD_SAFE ()  // Thread unsafe rdbAccessSvc method is used.
+InDetServMatFactorySLHC::fetchTables()
 {
   DecodeVersionKey indetVersionKey(geoDbTagSvc(), "InnerDetector");
 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactory.cxx
index a200789c0e626f715ef5a65fd9083a85d098065f..a32fc26c0d1c719598dc630517545dd765fc538b 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactory.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactory.cxx
@@ -41,7 +41,7 @@ PixelServMatFactory::~PixelServMatFactory()
 
 
 //## Other Operations (implementation)
-void PixelServMatFactory::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread unsafe rdbAccessSvc and materialManager methods are used.
+void PixelServMatFactory::create(GeoPhysVol *mother)
 {
   msg(MSG::DEBUG) << "Building Pixel Service Material" << endmsg; 
   
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx
index c81a5897ff250a4464c75c4e10a6d890c7510767..8966410a585d3811692d809ea64d6e3d4969b557 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx
@@ -46,7 +46,7 @@ PixelServMatFactoryDC3::~PixelServMatFactoryDC3()
 
 
 //## Other Operations (implementation)
-void PixelServMatFactoryDC3::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread unsafe rdbAccessSvc method is used.
+void PixelServMatFactoryDC3::create(GeoPhysVol *mother)
 {
   msg(MSG::DEBUG) << "Building Pixel Service Material" << endmsg;
 
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx
index 7811c6d21eb0338e4673eef8e6a2050d6a287411..40f4d48f47de068c9b7710ec9d954aeea2566ccb 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx
@@ -44,7 +44,7 @@ SCT_ServMatFactory::~SCT_ServMatFactory()
 
 
 //## Other Operations (implementation)
-void SCT_ServMatFactory::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread unsafe rdbAccessSvc method and InDetMaterialManager constructor are used.
+void SCT_ServMatFactory::create(GeoPhysVol *mother)
 {
 
   msg(MSG::DEBUG) << "Building SCT Service Material" << endmsg;
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx
index babf016ac03f8b0fa317623eb44345145b27bdfb..fdc442e624a547a2ea8a5b22caed6a3f4d3fb079 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx
@@ -42,7 +42,7 @@ SCT_ServMatFactoryDC3::SCT_ServMatFactoryDC3(InDetDD::AthenaComps * athenaComps,
 }
 
 //## Other Operations (implementation)
-void SCT_ServMatFactoryDC3::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread unsafe rdbAccessSvc and materialManager methods are used.
+void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother)
 {
 
   msg(MSG::DEBUG) << "Building SCT Service Material" << endmsg;
@@ -244,7 +244,7 @@ const GeoShape* SCT_ServMatFactoryDC3::createShape(int volType,
   return IDShape;
 }
 
-const GeoMaterial* SCT_ServMatFactoryDC3::createMaterial ATLAS_NOT_THREAD_SAFE // Thread unsafe materialManager method is used.
+const GeoMaterial* SCT_ServMatFactoryDC3::createMaterial
                                                   (const std::string & name,
 						   int volType, 
 						   double fractionRL,
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServicesTracker.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServicesTracker.cxx
index bc0c3b5e45686ff9d3e33d994c725de4cb6019e7..f3427457dead732568ded049e74054d8c6b7b581 100644
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServicesTracker.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServicesTracker.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "InDetServMatGeoModel/ServicesTracker.h"
@@ -79,7 +79,7 @@ void ServicesTracker::finaliseServices()
 {
   msg(MSG::INFO) << "ServicesTracker::finaliseServices called for " << m_volumes.size() << " volumes" << endmsg;
 
-  ComputeStaveServices staveComputer(msgStream());
+  ComputeStaveServices staveComputer;
   ConvertStaveServices staveConverter;
 
   std::map<const ServicesLayer*, ServiceMaterial> layerMaterial; // cache the layer services
@@ -98,7 +98,8 @@ void ServicesTracker::finaliseServices()
       if (iMat !=  layerMaterial.end()) layerMat = iMat->second;
       else {
 	StaveServices sserv = staveComputer.compute( layer.type(), layer.part(), layer.number(),
-						     layer.modulesPerStave(), layer.chipsPerModule());
+						     layer.modulesPerStave(), layer.chipsPerModule(),
+                                                     msgStream().get());
 	layerMat = staveConverter.convertStaveServices( sserv);
 
 	layerMat.multiply( layer.nStaves()); // scale from one stave to full layer
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx
index 1de085da22d8fe6667034aada88466c807079184..be17c5463e9709c08f7118379e55710cb2d0e1c4 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx
@@ -44,7 +44,7 @@ SquirrelCageFactory::~SquirrelCageFactory()
 
 
 //## Other Operations (implementation)
-void SquirrelCageFactory::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread unsafe rdbAccessSvc method is used.
+void SquirrelCageFactory::create(GeoPhysVol *mother)
 {
 
   DecodeVersionKey indetVersionKey(geoDbTagSvc(),"InnerDetector");
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx
index 21fc8b9e3005c74bc3988f1df1c1dc00c004caa6..0f7536d4d92735b05104e7e2499a9100d864b58e 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx
@@ -45,7 +45,7 @@ SupportRailFactory::~SupportRailFactory()
 
 
 //## Other Operations (implementation)
-void SupportRailFactory::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread usnafe rdbAccessSvc and materialManager methods are used.
+void SupportRailFactory::create(GeoPhysVol *mother)
 {
 
   DecodeVersionKey atlasVersionKey(geoDbTagSvc(),"ATLAS");
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx
index 81ad9c3262f613edee13fbe174f59d8a59bbcd65..71315305ff553e5b9c62c7ca57ab7287cc3e7f35 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx
@@ -46,7 +46,7 @@ TRT_ServMatFactory::~TRT_ServMatFactory()
 
 
 //## Other Operations (implementation)
-void TRT_ServMatFactory::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread unsafe rdbAccessSvc method is used.
+void TRT_ServMatFactory::create(GeoPhysVol *mother)
 {
 
   msg(MSG::DEBUG) << "Building TRT Service Material" << endmsg;
diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx
index 9341703b36a201837e9a757a989f3c86bb7ee1f8..84ddec23e6874fc80c39ac5727d2f74f92431372 100755
--- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx
+++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx
@@ -48,7 +48,7 @@ TRT_ServMatFactoryDC3::~TRT_ServMatFactoryDC3()
 
 
 //## Other Operations (implementation)
-void TRT_ServMatFactoryDC3::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) // Thread unsafe rdbAccessSvc and materialManager methods are used.
+void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother)
 {
 
   msg(MSG::DEBUG) << "Building TRT Service Material" << endmsg;
@@ -229,7 +229,7 @@ void TRT_ServMatFactoryDC3::create ATLAS_NOT_THREAD_SAFE (GeoPhysVol *mother) //
   return IDShape;
 }
 
-const GeoMaterial* TRT_ServMatFactoryDC3::createMaterial ATLAS_NOT_THREAD_SAFE // Thread unsafe materialManager method is used.
+const GeoMaterial* TRT_ServMatFactoryDC3::createMaterial
                                                   (const std::string & name,
 						   int volType, 
 						   double fractionRL,