diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
index fa7e32f0ef0bdcbafa21d4f8a94ed7d4403de4a2..f5f6bc50aee4ba2a250683e8e2c204efbe0ebafc 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
@@ -16,7 +16,7 @@ from TriggerMenuMT.HLTMenuConfig.Menu.DictFromChainName import dictFromChainName
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitInterSignatureChainDict
 from TriggerMenuMT.HLTMenuConfig.Menu.MenuPrescaleConfig import MenuPrescaleConfig
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainMerging import mergeChainDefs
-
+from TriggerMenuMT.HLTMenuConfig.Menu.MenuUtil import applyHLTPrescale
 
 from AthenaCommon.Logging import logging
 log = logging.getLogger( __name__ )
@@ -99,8 +99,6 @@ class GenerateMenuMT(object):
         == Setup of menu in terms of prescales and overwrite function
         """
         # go over the slices and put together big list of signatures requested
-        #(L1Prescales, HLTPrescales, streamConfig) = MenuPrescaleConfig(self.triggerPythonConfig)
-        # that does not seem to work
         (self.L1Prescales, self.HLTPrescales) = MenuPrescaleConfig(TriggerConfigHLT)
         global _func_to_modify_signatures
         if _func_to_modify_signatures is not None:
@@ -171,6 +169,9 @@ class GenerateMenuMT(object):
             chainCounter += 1
             chainDict['chainCounter'] = chainCounter
 
+            #set default chain prescale
+            chainDict['prescale'] = 1
+
             log.debug("Next: getting chain configuration for chain %s ", chain.name) 
             chainConfig= self.__generateChainConfig(chainDict)
 
@@ -366,6 +367,9 @@ class GenerateMenuMT(object):
         makeHLTTree(newJO=False, triggerConfigHLT = TriggerConfigHLT)
         # the return values used for debugging, might be removed later
 
+        # Having built the Menu add prescales for disabling items (e.g. MC production)
+        applyHLTPrescale(TriggerConfigHLT, self.HLTPrescales, self.signaturesOverwritten)
+
         from TriggerMenuMT.HLTMenuConfig.Menu.HLTMenuJSON import generateJSON
         generateJSON()
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
index f2231c9363bf6451ca3e051989b0284fcc918984..9d3da3b959d0311f64bd64536e7b0b8c96539870 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1.py
@@ -268,14 +268,14 @@ def setupMenu():
 Prescales = mc_menu.Prescales
 
 ps_online_list=[
-    'mb_sptrk_L1RD0_FILLED',
-    'timeburner_L1All'
+    'HLT_mb_sptrk_L1RD0_FILLED',
+    'HLT_timeburner_L1All'
 ]
 
+
 Prescales.L1Prescales_trigvalid_mc_prescale  = dict([(ctpid,1) for ctpid in Prescales.L1Prescales])  # setting all L1 prescales to 1
+#for HLT only need to store any chains that have a prescale different from 1
 Prescales.HLTPrescales_trigvalid_mc_prescale = {}
-
-chain_list=ps_online_list
-
-Prescales.HLTPrescales_trigvalid_mc_prescale.update(zip(chain_list,len(chain_list)*[ [-1, 0,-1] ]))
+disable_chain_list=ps_online_list
+Prescales.HLTPrescales_trigvalid_mc_prescale.update(zip(disable_chain_list,len(disable_chain_list)*[ [-1, 0,-1] ]))
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuUtil.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuUtil.py
index 17f31b2d8ffc2eda9ce0f0e7b0eba06a79320382..9474a783b1bf914da8942b9bb52680c4437f045e 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuUtil.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/MenuUtil.py
@@ -2,8 +2,11 @@
 
 from TriggerJobOpts.TriggerFlags import TriggerFlags
 from AthenaCommon.Logging import logging
+from six import iteritems
+
 log = logging.getLogger(__name__)
 
+
 def getStreamTagForRerunChains(triggerPythonConfig, HLTPrescale):
     list=[]
     for item, prescales in HLTPrescale.iteritems():
@@ -30,29 +33,30 @@ def getStreamTagForRerunChains(triggerPythonConfig, HLTPrescale):
                 
 
 
-def applyHLTPrescale(triggerPythonConfig, HLTPrescale):
-    for item, prescales in HLTPrescale.iteritems():
+def applyHLTPrescale(triggerPythonConfig, HLTPrescale, signaturesOverwritten):
+    for item, prescales in iteritems(HLTPrescale):
         # prescales is a list of 3 integers [HLT_prescale, HLT_pass_through, rerun_prescale]
-        if item not in triggerPythonConfig.allChains.keys():
-            if triggerPythonConfig.signaturesOverwritten:
+        if item not in triggerPythonConfig.dicts().keys():
+            if signaturesOverwritten:
                 log.warning('Attempt to set prescales for nonexisting chain: %s', item)
                 continue
             else:
                 log.error('Attempt to set prescales for nonexisting chain: %s', item)
                 continue
         n = len(prescales)
-        hltchain = None
-        for ch in triggerPythonConfig.allChains[item]:
-            if ch.level == 'HLT': 
-                hltchain = ch
-        if n > 0  and hltchain:
-            hltchain.prescale = str(prescales[0])
-        if n > 1  and hltchain:
-            hltchain.pass_through = str(prescales[1])
-        if n > 2  and hltchain:
-            hltchain.rerun_prescale = str(prescales[2])
-       
-        log.info('Applied HLTPS to the item '+item+': PS'+ hltchain.prescale+" PT"+hltchain.pass_through+" RerunPS"+hltchain.rerun_prescale)
+        hltchain = triggerPythonConfig.dicts()[item]
+        if n > 0:
+            hltchain['prescale'] = str(prescales[0])
+        log.info('Applied HLTPS to the item '+item+': PS'+ hltchain['prescale'])
+        #
+        #passthrough and rerun still in the HLTPrescale object but not needed currently
+        #
+        #if n > 1:
+        #    hltchain['pass_through'] = str(prescales[1])
+        #if n > 2:
+        #    hltchain['rerun_prescale'] = str(prescales[2])
+        #
+        #log.info('Applied HLTPS to the item '+item+': PS'+ hltchain.prescale+" PT"+hltchain.pass_through+" RerunPS"+hltchain.rerun_prescale)
 
 
 
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
index 22b06fb939072ceadc278e6d91c25ed850790d55..acfa5b4c743a01ae6384048fe0aeee617a1f6ebe 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/Physics_pp_run3_v1.py
@@ -140,7 +140,7 @@ class Prescales(object):
     L1Prescales = {}
 
     #   Signature name   | [ HLTprescale, HLTpass-through, rerun]
-    #   - Prescale values should be a positive integer (default=1)
+    #   - Chains only need adding if have a Prescale value different from 1 (default)
     #   - If the current pass_through value is non-zero,
     #     the value given here will be used as pass_through rate
     #     Assuming that pass through chains are configured so