diff --git a/Tracking/TrkEvent/TrkPatternParameters/TrkPatternParameters/ATLAS_CHECK_THREAD_SAFETY b/Tracking/TrkEvent/TrkPatternParameters/TrkPatternParameters/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..5a22e1c393c8fa1e378d6078a975c279f1578d74
--- /dev/null
+++ b/Tracking/TrkEvent/TrkPatternParameters/TrkPatternParameters/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Tracking/TrkEvent/TrkPatternParameters
diff --git a/Tracking/TrkEvent/TrkPrepRawData/TrkPrepRawData/ATLAS_CHECK_THREAD_SAFETY b/Tracking/TrkEvent/TrkPrepRawData/TrkPrepRawData/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..e7bc918d68efb6e63a112455c76559d4d6e7e628
--- /dev/null
+++ b/Tracking/TrkEvent/TrkPrepRawData/TrkPrepRawData/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Tracking/TrkEvent/TrkPrepRawData
diff --git a/Tracking/TrkEvent/TrkPrepRawData/TrkPrepRawData/PrepRawData.h b/Tracking/TrkEvent/TrkPrepRawData/TrkPrepRawData/PrepRawData.h
index 883a0c016ed3d5880167dc2874d380d4dae45e7f..928cb27b539051d6355ba264b1e0e8592dd48ea6 100755
--- a/Tracking/TrkEvent/TrkPrepRawData/TrkPrepRawData/PrepRawData.h
+++ b/Tracking/TrkEvent/TrkPrepRawData/TrkPrepRawData/PrepRawData.h
@@ -18,6 +18,7 @@
 #include "EventPrimitives/EventPrimitives.h"
 
 #include <vector>
+#include <atomic>
 #include <iostream>
 
 class MsgStream;
@@ -98,7 +99,7 @@ namespace Trk{
 
     /** return the detector element corresponding to this PRD
         The pointer will be zero if the det el is not defined (i.e. it was not passed in by the ctor)*/
-	virtual const TrkDetElementBase* detectorElement() const = 0;
+        virtual const TrkDetElementBase* detectorElement() const = 0;
 
     /** dump information about the PRD object. I would like to make this pure virtual, but I don't want to risk screwing up the muon classes for the moment*/
         virtual MsgStream&    dump( MsgStream&    stream) const;
@@ -131,7 +132,9 @@ namespace Trk{
         IdentContIndex m_indexAndHash;
 
     /** number of objects of this type in memory */
-        static unsigned int s_numberOfInstantiations;
+    
+     static std::atomic<unsigned int> s_numberOfInstantiations;
+
 
     };
 
diff --git a/Tracking/TrkEvent/TrkPrepRawData/src/PrepRawData.cxx b/Tracking/TrkEvent/TrkPrepRawData/src/PrepRawData.cxx
index a051f8df5771186fe140049e1be65a7320f463cb..4e0f00dce36b5038698f3c4a20305125e097e9bf 100755
--- a/Tracking/TrkEvent/TrkPrepRawData/src/PrepRawData.cxx
+++ b/Tracking/TrkEvent/TrkPrepRawData/src/PrepRawData.cxx
@@ -12,8 +12,8 @@
 #include "GeoPrimitives/GeoPrimitivesToStringConverter.h"
 
 namespace Trk{
+    std::atomic<unsigned int> PrepRawData::s_numberOfInstantiations{0};
 
-    unsigned int PrepRawData::s_numberOfInstantiations=0;
 
 
     PrepRawData::PrepRawData( 
diff --git a/Tracking/TrkEvent/TrkRoad/TrkRoad/ATLAS_CHECK_THREAD_SAFETY b/Tracking/TrkEvent/TrkRoad/TrkRoad/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..5110748c44825605cdee0e229c1245a52f19f0bf
--- /dev/null
+++ b/Tracking/TrkEvent/TrkRoad/TrkRoad/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Tracking/TrkEvent/TrkRoad