diff --git a/Trigger/TrigDataAccess/TrigSerializeResult/share/bs-streamerinfos.root b/Trigger/TrigDataAccess/TrigSerializeResult/share/bs-streamerinfos.root
index 4ff3afcecfe4a39485b6689ffed3016e157f9805..bec235d093be6adf51c2d52bfd17f0c8b0045086 100644
Binary files a/Trigger/TrigDataAccess/TrigSerializeResult/share/bs-streamerinfos.root and b/Trigger/TrigDataAccess/TrigSerializeResult/share/bs-streamerinfos.root differ
diff --git a/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt b/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt
index 568ab360049d71af54926c91dcaffb1039e217d3..1dc131abefc80f62e5337f1fd7de9f5df700505d 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt
+++ b/Trigger/TrigSteer/TrigOutputHandling/CMakeLists.txt
@@ -13,7 +13,9 @@ atlas_add_library( TrigOutputHandlingLib
                    src/*.cxx
                    PUBLIC_HEADERS TrigOutputHandling
                    INCLUDE_DIRS ${TDAQ-COMMON_INCLUDE_DIRS}
-                   LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} GaudiKernel AthViews AthenaBaseComps RootUtils TrigSteeringEvent TrigSerializeResultLib TrigConfData xAODTrigCalo xAODTrigRinger xAODTrigEgamma xAODEgamma xAODBTagging xAODTrigger xAODTracking xAODTrigMuon xAODMuon xAODTau xAODTrigBphys xAODTrigMissingET DecisionHandlingLib AthenaMonitoringKernelLib TrigPartialEventBuildingLib TrigSerializeTPLib AthContainersRoot TrigCompositeUtilsLib TrigCostMonitorMTLib )
+                   LINK_LIBRARIES ${TDAQ-COMMON_LIBRARIES} GaudiKernel AthViews AthenaBaseComps RootUtils TrigSteeringEvent TrigSerializeResultLib TrigConfData xAODTrigCalo xAODTrigRinger xAODTrigEgamma xAODEgamma xAODBTagging xAODTrigger xAODTracking xAODTrigMuon xAODMuon xAODTau xAODTrigBphys xAODTrigMissingET DecisionHandlingLib AthenaMonitoringKernelLib TrigPartialEventBuildingLib TrigSerializeTPLib AthContainersRoot TrigCompositeUtilsLib TrigCostMonitorMTLib
+		   PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} PathResolver )
+
 
 atlas_add_component( TrigOutputHandling
                      src/components/*.cxx
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx
index a39aa0c19116dbf36635b1810af01a9b4b0a2aea..d7a5a53be823a046d04877c8c94f8b36e5a82b65 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.cxx
@@ -21,6 +21,11 @@
 #include "TriggerEDMDeserialiserAlg.h"
 #include "TriggerEDMCLIDs.h"
 
+#include "TFile.h"
+#include "TStreamerInfo.h"
+#include "PathResolver/PathResolver.h"
+
+
 class TriggerEDMDeserialiserAlg::WritableAuxStore : public SG::AuxStoreInternal {
 public:
   WritableAuxStore() {}
@@ -74,6 +79,7 @@ StatusCode TriggerEDMDeserialiserAlg::initialize() {
   ATH_CHECK( m_clidSvc.retrieve() );
   ATH_CHECK( m_serializerSvc.retrieve() );
   ATH_CHECK( m_tpTool.retrieve() );
+  add_bs_streamerinfos();
   return StatusCode::SUCCESS;
 }
 
@@ -290,3 +296,25 @@ void TriggerEDMDeserialiserAlg::toBuffer( TriggerEDMDeserialiserAlg::PayloadIter
   // we rely on continuous memory layout of std::vector ...
   std::memcpy( buffer, &(*dataStart), dataSize( start ) );
 }
+
+void TriggerEDMDeserialiserAlg::add_bs_streamerinfos(){
+  std::string extStreamerInfos = "bs-streamerinfos.root";
+  std::string extFilePath = PathResolver::find_file(extStreamerInfos, "DATAPATH");
+  ATH_MSG_DEBUG( "Using " << extFilePath );
+  TFile extFile(extFilePath.c_str());
+  m_streamerInfoList = std::unique_ptr<TList>(extFile.GetStreamerInfoList());
+  for(const auto&& infObj: *m_streamerInfoList) {
+    TString t_name=infObj->GetName();
+    if (t_name.BeginsWith("listOfRules")){
+      ATH_MSG_WARNING( "Could not re-load  class " << t_name );
+      continue;
+    }
+
+    TStreamerInfo* inf = dynamic_cast<TStreamerInfo*>(infObj);
+    inf->BuildCheck();
+    TClass *cl = inf->GetClass();
+    if (cl)
+      ATH_MSG_DEBUG( "external TStreamerInfo for " << cl->GetName()
+		     << " checksum: " << std::hex << inf->GetCheckSum()  );
+  }
+}
diff --git a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h
index 009eb723e52218983813939e759454a9ee3a00f7..e0c03e0a506bf7674dabd801a45679a084ffe594 100644
--- a/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h
+++ b/Trigger/TrigSteer/TrigOutputHandling/src/TriggerEDMDeserialiserAlg.h
@@ -12,6 +12,7 @@
 #include "AthenaKernel/IAthenaSerializeSvc.h"
 #include "TrigSerializeTP/TrigSerTPTool.h"
 
+#include "TList.h"
 
 
 /**
@@ -46,6 +47,8 @@ public:
 private:
   friend StatusCode tester( TriggerEDMDeserialiserAlg* );
 
+  void add_bs_streamerinfos();
+
   SG::ReadHandleKey<HLT::HLTResultMT> m_resultKey { this, "ResultKey", "HLTResultMT", "Key of the HLT result object"  };
   Gaudi::Property<std::string> m_prefix{ this, "Prefix", "", "Set for testing to avoid clash with the input collections" };
   Gaudi::Property<int> m_moduleID{ this, "ModuleID", 0, "Module ID of HLT result ROB, default 0 is the main HLT result, others are for TLA, calibration etc." };
@@ -57,6 +60,8 @@ private:
   
   ToolHandle<TrigSerTPTool> m_tpTool{ this, "TPTool", "TrigSerTPTool/TrigSerTPTool", "Tool to do Transient/Persistent conversion (Old EDM)"};
 
+  std::unique_ptr<TList> m_streamerInfoList;
+
   typedef  std::vector<uint32_t> Payload;
   typedef  std::vector<uint32_t>::const_iterator PayloadIterator;