diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h
index 3d080a519b120768c7c84eebf4149823075b52f7..ec8c48f06842d38fe7e8b1339cac3c8b88dbec14 100644
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h
@@ -616,15 +616,15 @@ namespace InDetDD {
 
       // Directions of axes. These are true if the hit/simulation and reconstruction local frames are
       // in the same direction and false if they are opposite.
-      mutable std::atomic_bool m_depthDirection; // Direction of depth axis. 
+      mutable bool m_depthDirection ATLAS_THREAD_SAFE; // Guarded by m_mutex // Direction of depth axis. 
                              // Also direction of readout implant (n+ for pixel, p+ for SCT).
-      mutable std::atomic_bool m_phiDirection;     //
-      mutable std::atomic_bool m_etaDirection;     //
-    
+      mutable bool m_phiDirection ATLAS_THREAD_SAFE;     //
+      mutable bool m_etaDirection ATLAS_THREAD_SAFE;     //
+
       mutable std::atomic_bool m_cacheValid; // Alignment associated quatities.
       mutable std::atomic_bool m_firstTime;
-      mutable std::atomic_bool m_isStereo;
-    
+      mutable bool m_isStereo ATLAS_THREAD_SAFE;
+
       mutable std::recursive_mutex m_mutex;
 
       mutable Amg::Transform3D m_transform ATLAS_THREAD_SAFE; // Guarded by m_mutex
@@ -638,12 +638,12 @@ namespace InDetDD {
       mutable Amg::Vector3D m_center ATLAS_THREAD_SAFE; // Guarded by m_mutex
       mutable HepGeom::Vector3D<double> m_centerCLHEP ATLAS_THREAD_SAFE; // Guarded by m_mutex
 
-      mutable std::atomic<double> m_minZ;
-      mutable std::atomic<double> m_maxZ;
-      mutable std::atomic<double> m_minR;
-      mutable std::atomic<double> m_maxR;
-      mutable std::atomic<double> m_minPhi;
-      mutable std::atomic<double> m_maxPhi;
+      mutable double m_minZ   ATLAS_THREAD_SAFE;// Guarded by m_mutex
+      mutable double m_maxZ   ATLAS_THREAD_SAFE;// Guarded by m_mutex
+      mutable double m_minR   ATLAS_THREAD_SAFE;// Guarded by m_mutex
+      mutable double m_maxR   ATLAS_THREAD_SAFE;// Guarded by m_mutex
+      mutable double m_minPhi ATLAS_THREAD_SAFE;// Guarded by m_mutex
+      mutable double m_maxPhi ATLAS_THREAD_SAFE;// Guarded by m_mutex
 
       CxxUtils::CachedUniquePtr<Trk::Surface> m_surface;
       mutable std::vector<const Trk::Surface*> m_surfaces ATLAS_THREAD_SAFE; // Guarded by m_mutex
diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx
index bb597d1be11827dd18a6baa137ab4568ff81c42b..ded850688698d692dcd6c9defe01805c4bc8e405 100644
--- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx
+++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx
@@ -331,14 +331,8 @@ SiDetectorElement::updateCache() const
   m_phiAxis = Amg::Vector3D(m_phiAxisCLHEP[0],m_phiAxisCLHEP[1],m_phiAxisCLHEP[2]);
   m_etaAxis = Amg::Vector3D(m_etaAxisCLHEP[0],m_etaAxisCLHEP[1],m_etaAxisCLHEP[2]);
 
-  double minR, maxR, minZ, maxZ, minPhi, maxPhi;
-  getExtent(minR, maxR, minZ, maxZ, minPhi, maxPhi);
-  m_minR = minR;
-  m_maxR = maxR;
-  m_minZ = minZ;
-  m_maxZ = maxZ;
-  m_minPhi = minPhi;
-  m_maxPhi = maxPhi;
+  getExtent(m_minR, m_maxR, m_minZ, m_maxZ, m_minPhi, m_maxPhi);
+
 
   // Determin isStereo
   if (firstTimeTmp) {