diff --git a/Calo/CaloPIDs/src/CaloBremMatch.cpp b/Calo/CaloPIDs/src/CaloBremMatch.cpp
index 41c9acead403c56bac542e7a05110d53cd1eae89..168766acc76eb3bfb88153ebc2d06993af953050 100755
--- a/Calo/CaloPIDs/src/CaloBremMatch.cpp
+++ b/Calo/CaloPIDs/src/CaloBremMatch.cpp
@@ -44,6 +44,14 @@ public:
     m_showerMax = calo()->plane( CaloPlane::ShowerMax );
     return StatusCode::SUCCESS;
   }
+
+  // added to reset m_cBad and m_tBad every time CaloTrackMatchAlg is called.
+  // fixes reproducibility issues seen in the Stripping, documented in https://gitlab.cern.ch/lhcb/Stripping/-/issues/41
+  void resetBadPointers() override {
+    // std::cout<<"Calling CaloBremMatch::resetBadPointers"<<std::endl;
+    m_cBad = 0;
+    m_tBad = 0;
+  }
   // ==========================================================================
 public:
   // ==========================================================================
diff --git a/Calo/CaloPIDs/src/CaloElectronMatch.cpp b/Calo/CaloPIDs/src/CaloElectronMatch.cpp
index 6b5a2662f1d173f6da92f50988fca92e068186f3..f0cf904902911b2ecfc86cfdeb1b08195de2bc3e 100755
--- a/Calo/CaloPIDs/src/CaloElectronMatch.cpp
+++ b/Calo/CaloPIDs/src/CaloElectronMatch.cpp
@@ -35,6 +35,7 @@
 class CaloElectronMatch : public virtual ICaloTrackMatch, public CaloTrackMatch {
 public:
   /// initialize the tool
+
   StatusCode initialize() override {
     StatusCode sc = CaloTrackMatch::initialize();
     if ( sc.isFailure() ) { return sc; }
@@ -42,6 +43,13 @@ public:
     return StatusCode::SUCCESS;
   };
 
+  // added to reset m_cBad and m_tBad every time CaloTrackMatchAlg is called.
+  // fixes reproducibility issues seen in the Stripping, documented in https://gitlab.cern.ch/lhcb/Stripping/-/issues/41
+  void resetBadPointers() override {
+    m_cBad = 0;
+    m_tBad = 0;
+  };
+
 public:
   /** the main matching method
    *  @see ICaloTrackMatch
diff --git a/Calo/CaloPIDs/src/CaloPhotonMatch.cpp b/Calo/CaloPIDs/src/CaloPhotonMatch.cpp
index 48e6017b1e369e9af8b1c1e2fe5aa9f77e916c96..a723be8c784eae5a6e6189f85b2ddbbf3f5567e1 100755
--- a/Calo/CaloPIDs/src/CaloPhotonMatch.cpp
+++ b/Calo/CaloPIDs/src/CaloPhotonMatch.cpp
@@ -52,6 +52,13 @@ public:
     return StatusCode::SUCCESS;
   };
 
+  // added to reset m_cBad and m_tBad every time CaloTrackMatchAlg is called.
+  // fixes reproducibility issues seen in the Stripping, documented in https://gitlab.cern.ch/lhcb/Stripping/-/issues/41
+  void resetBadPointers() override {
+    m_cBad = 0;
+    m_tBad = 0;
+  };
+
 public:
   /** the main matching method
    *  @see ICaloTrackMatch
diff --git a/Calo/CaloPIDs/src/CaloTrackMatchAlg.h b/Calo/CaloPIDs/src/CaloTrackMatchAlg.h
index edf5b6230af686f064d38c2d5145e41b42e8c52c..5fd3ab8ffb5762dc6d8d1dfe88633a497e68279d 100755
--- a/Calo/CaloPIDs/src/CaloTrackMatchAlg.h
+++ b/Calo/CaloPIDs/src/CaloTrackMatchAlg.h
@@ -164,6 +164,10 @@ inline StatusCode CaloTrackMatchAlg::doTheJob( TABLE* table ) const {
   // get the matching tool
   ICaloTrackMatch* matcher = match();
 
+  // added to reset m_cBad and m_tBad every time CaloTrackMatchAlg is called.
+  // fixes reproducibility issues seen in the Stripping, documented in https://gitlab.cern.ch/lhcb/Stripping/-/issues/41
+  matcher->resetBadPointers();
+
   size_t nCalos    = 0;
   size_t nOverflow = 0;
   // loop over cluster containers