diff --git a/Reconstruction/RecJobTransforms/share/skeleton.RAWtoALL_tf.py b/Reconstruction/RecJobTransforms/share/skeleton.RAWtoALL_tf.py
index d57dae9bd3e8350f0ff6b4e915e128195d41e0a1..e306e0094b9d016dffb033683f6fd3b175013eff 100644
--- a/Reconstruction/RecJobTransforms/share/skeleton.RAWtoALL_tf.py
+++ b/Reconstruction/RecJobTransforms/share/skeleton.RAWtoALL_tf.py
@@ -89,8 +89,10 @@ if hasattr(runArgs,"inputRDO_TRIGFile"):
     DQMonFlags.useTrigger = False
     DQMonFlags.doLVL1CaloMon = False
     # Configure HLT output
+    locked_flags = ConfigFlags.clone()  # cannot lock yet because RecExCommon modifies them
+    locked_flags.lock()
     from TriggerJobOpts.HLTTriggerResultGetter import HLTTriggerResultGetter
-    hltOutput = HLTTriggerResultGetter(ConfigFlags)
+    hltOutput = HLTTriggerResultGetter(locked_flags)
     # Add Trigger menu metadata
     from RecExConfig.ObjKeyStore import objKeyStore
     if rec.doFileMetaData():
diff --git a/Reconstruction/RecJobTransforms/share/skeleton.RAWtoESD_tf.py b/Reconstruction/RecJobTransforms/share/skeleton.RAWtoESD_tf.py
index 5415ae1070aa1f40d3023bef3cefcf9450d900b8..2eb9228e72d8d51ad5661c6c46106b06b70956f1 100644
--- a/Reconstruction/RecJobTransforms/share/skeleton.RAWtoESD_tf.py
+++ b/Reconstruction/RecJobTransforms/share/skeleton.RAWtoESD_tf.py
@@ -84,8 +84,10 @@ if hasattr(runArgs,"inputRDO_TRIGFile"):
     DQMonFlags.useTrigger = False
     DQMonFlags.doLVL1CaloMon = False
     # Configure HLT output
+    locked_flags = ConfigFlags.clone()  # cannot lock yet because RecExCommon modifies them
+    locked_flags.lock()
     from TriggerJobOpts.HLTTriggerResultGetter import HLTTriggerResultGetter
-    hltOutput = HLTTriggerResultGetter(ConfigFlags)
+    hltOutput = HLTTriggerResultGetter(locked_flags)
     # Add Trigger menu metadata
     from RecExConfig.ObjKeyStore import objKeyStore
     if rec.doFileMetaData():
diff --git a/Trigger/TrigAnalysis/TrigDecisionTool/python/TrigDecisionToolConfig.py b/Trigger/TrigAnalysis/TrigDecisionTool/python/TrigDecisionToolConfig.py
index 453e931ef59379676086e50cfb821c794470ca56..6f20c4cc8cc62015333a1137d0f80394396c3387 100644
--- a/Trigger/TrigAnalysis/TrigDecisionTool/python/TrigDecisionToolConfig.py
+++ b/Trigger/TrigAnalysis/TrigDecisionTool/python/TrigDecisionToolConfig.py
@@ -2,17 +2,11 @@
 #  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
 #
 
-
-# List of all possible keys of the Run 3 navigation summary collection
-# in order of verbosity. Want to take the most verbose which is available.
+from AthenaConfiguration.AccumulatorCache import AccumulatorCache
 from AthenaCommon.Logging import logging
 
-def getTrigDecisionTool(flags):
-    msg = logging.getLogger('getTrigDecisionTool')
-    msg.warning("This function is becoming obsolete. Use: TrigDecisionToolCfg(flags) - imported from the same package")
-    return TrigDecisionToolCfg(flags)
-
 
+@AccumulatorCache
 def TrigDecisionToolCfg(flags):
     '''
     @brief Configures and returns the TrigDecisionTool (TDT) for use in Athena-MT. 
@@ -66,6 +60,8 @@ def TrigDecisionToolCfg(flags):
     return acc
 
 
+# List of all possible keys of the Run 3 navigation summary collection
+# in order of verbosity. Want to take the most verbose which is available.
 possible_keys = [
     'HLTNav_Summary', # Produced initially online (only the final nodes, all other nodes spread out over many many collections created by trigger framework algs)
     'HLTNav_Summary_OnlineSlimmed', # Produced online, all nodes in one container. Accessible during RAWtoALL, good for T0 monitoring.
@@ -75,7 +71,7 @@ possible_keys = [
     'HLTNav_R2ToR3Summary' # Output of Run 2 to Run 3 navigation conversion procedure. Somewhat equivalent to AODFULL level. Designed to be further reduced to DAODSlimmed level before analysis use.
     ]
 
-
+@AccumulatorCache
 def getRun3NavigationContainerFromInput(flags):
     # What to return if we cannot look in the file
     default_key = 'HLTNav_Summary_OnlineSlimmed' if flags.Trigger.doOnlineNavigationCompactification else 'HLTNav_Summary'
@@ -89,13 +85,12 @@ def getRun3NavigationContainerFromInput(flags):
                 to_return = key
                 break
 
-    from AthenaCommon.Logging import logging
     msg = logging.getLogger('getRun3NavigationContainerFromInput')
-    msg.info('Returning {} as the Run 3 trigger navigation colletion to read in this job.'.format(to_return))
+    msg.info('Returning %s as the Run 3 trigger navigation colletion to read in this job.', to_return)
 
     # Double check 'possible_keys' is kept up to date
     if to_return not in possible_keys:
-        msg.error('Must add {} to the "possible_keys" array!'.format(to_return))
+        msg.error('Must add %s to the "possible_keys" array!', to_return)
 
     return to_return