diff --git a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
index a81d2b35ba6d16bd1f5d91b2cf57accc36a134ba..876746b073ceafa1c67c21eec2806527ff524d88 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
+++ b/Trigger/TriggerCommon/TriggerMenuMT/CMakeLists.txt
@@ -68,7 +68,7 @@ function( atlas_test_hlt_trigger_menu menu )
                    SCRIPT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/test_HLTmenu.sh ${menu}
                    PROPERTIES TIMEOUT 500
                    PRIVATE_WORKING_DIRECTORY
-                   POST_EXEC_SCRIPT nopost.sh )
+                   POST_EXEC_SCRIPT "check_log.py --errors ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/unitTestRun_HLT_${menu}/HLT_${menu}.log" )
 endfunction()
 
 # Test all L1 menus (as this is fast):
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
index 932c5194789138dcdfff885ddeb8110ec74bdc9d..017f883c5d623f4fb6fe70422a0b61d7e1fa67af 100755
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/GenerateMenuMT.py
@@ -4,11 +4,6 @@ import importlib
 import itertools
 import string
 
-# Configure the scheduler
-from AthenaCommon.AlgScheduler import AlgScheduler
-AlgScheduler.ShowControlFlow( True )
-AlgScheduler.ShowDataFlow( True )
-
 from .TriggerConfigHLT  import TriggerConfigHLT
 from .HLTCFConfig import makeHLTTree
 from .DictFromChainName import dictFromChainName
@@ -52,6 +47,8 @@ class GenerateMenuMT(object, metaclass=Singleton):
         self.availableSignatures = []
         self.signaturesToGenerate = []
         self.calibCosmicMonSigs = ['Streaming','Monitor','Beamspot','Cosmic', 'Calib', 'EnhancedBias']
+        self.combinedSigs = ['MinBias','Egamma','Muon','Tau','Jet', 'Bjet','MET','UnconventionalTracking']
+        self.defaultSigs = ['Streaming']  # for noalg chains
 
         self.chainDefModule = {}   # Generate[SIG]ChainDefs module for each SIGnature
 
@@ -72,37 +69,57 @@ class GenerateMenuMT(object, metaclass=Singleton):
 
 
     def getChainDicts(self):
-        all_chain_dicts = []
-        all_chains = itertools.chain.from_iterable(self.chainsInMenu.values())
-        for chainCounter, chain in enumerate(all_chains, start=1):
-            log.debug("Now processing chain: %s ", chain)
-            chainDict = dictFromChainName(chain)
-            chainDict['chainCounter'] = chainCounter
-
-            #set default chain prescale
-            chainDict['prescale'] = 1
-            all_chain_dicts += [chainDict]
-        self.chainDicts = all_chain_dicts
-        
-        return 
+
+        def validSignature(currentSig, chainSig):
+            """Check if chain is asssigned to the correct signature"""
+
+            # Translate Egamma signatures
+            if 'Electron' in chainSig or 'Photon' in chainSig:
+                chainSig.discard('Electron')
+                chainSig.discard('Photon')
+                chainSig.add('Egamma')
+
+            if ( (currentSig in chainSig) or
+                 (currentSig=='Combined' and set(chainSig).issubset(self.combinedSigs)) or
+                 (chainSig==set(['Streaming'])) ):
+                 return True
+            else:
+                 return False
+
+        chainCounter = 0
+        for sig, chains in self.chainsInMenu.items():
+            for chain in chains:
+                log.debug("Now processing chain: %s ", chain)
+                chainCounter += 1
+                chainDict = dictFromChainName(chain)
+                chainDict['chainCounter'] = chainCounter
+                chainDict['prescale'] = 1  # set default chain prescale
+
+                self.chainDicts.append(chainDict)
+
+                if not validSignature(sig, set(chainDict['signatures'])):
+                    log.error('Chain %s assigned to signature %s but creates %s',
+                              chainDict['chainName'], sig, set(chainDict['signatures']))
+
 
     def importSignaturesToGenerate(self):
         """check if all the signature files can be imported and then import them"""
 
-        log.debug("signaturesToGenerate: %s", self.signaturesToGenerate)
+        # List of all non-empty signatures
+        self.signaturesToGenerate = [s for s,chains in self.chainsInMenu.items()
+                                     if len(chains)>0]
+
+        log.info("Enabled signature(s): %s", self.signaturesToGenerate)
 
         # Extend the list to satisfy certain requirements
-        extendedSignatureToGenerate = set(self.signaturesToGenerate)
-        # always import the Streaming sig because noalg chains are moved to StreamingSlice
-        extendedSignatureToGenerate.add('Streaming')
+        extendedSignatureToGenerate = set(self.signaturesToGenerate + self.defaultSigs)
 
         # Combined chains themselves are created by merging
         # If we activate combined chains, we need all of the (legal) sub-signatures
         if "Combined" in extendedSignatureToGenerate:
             log.info("Combined chains requested -- activate other necessary signatures")
             extendedSignatureToGenerate.remove("Combined")
-            extendedSignatureToGenerate.update(["MinBias","Egamma","Muon","Tau","Jet",
-                                                "Bjet","MET","UnconventionalTracking"])
+            extendedSignatureToGenerate.update(self.combinedSigs)
 
         for sig in extendedSignatureToGenerate:
             log.debug("[getSignaturesInMenu] sig: %s", sig)
@@ -144,19 +161,8 @@ class GenerateMenuMT(object, metaclass=Singleton):
         alignmentGroups_to_align = set()
         length_of_configs = {}
         
-        previous_sig = ''
         for chainDict in self.chainDicts:
-            if len(set(chainDict['signatures'])) == 1:
-                current_sig = chainDict['signatures'][0]
-                if current_sig != previous_sig:
-                    previous_sig = current_sig
-                    log.info("Now starting generation of signature %s",current_sig)
-            elif len(set(chainDict['signatures'])) > 1 and set(chainDict['signatures'])!= set(['Bjet','Jet']):
-                current_sig = 'Combined'
-                if current_sig != previous_sig:
-                    previous_sig = current_sig
-                    log.info("Now starting generation of signature %s",current_sig)
-            log.debug("Next: getting chain configuration for chain %s ", chainDict['chainName']) 
+            log.debug("Next: getting chain configuration for chain %s ", chainDict['chainName'])
             chainConfig,lengthOfChainConfigs = self.__generateChainConfig(chainDict)
 
             all_chains += [(chainDict,chainConfig,lengthOfChainConfigs)]
@@ -294,12 +300,6 @@ class GenerateMenuMT(object, metaclass=Singleton):
                 self.chainsInMenu[signame] = [c for c in self.chainsInMenu[signame]
                                               if self.chainFilter(signame, c.name)]
 
-        # List of all non-empty signatures
-        self.signaturesToGenerate = [s for s,chains in self.chainsInMenu.items()
-                                     if len(chains)>0]
-
-        log.info("Enabled signature(s): %s", self.signaturesToGenerate)
-
         if not self.chainsInMenu:
             log.warning("There seem to be no chains in the menu - please check")
         elif log.isEnabledFor(logging.DEBUG):
@@ -335,17 +335,9 @@ class GenerateMenuMT(object, metaclass=Singleton):
             chainName = chainPartDict['chainName']
             log.debug('Checking chainDict for chain %s in signature %s, alignment group %s' , chainName, currentSig, currentAlignGroup)
 
-            sigFolder = ''
-            if currentSig == 'Electron' or currentSig == 'Photon':
-                sigFolder = 'Egamma'
-            elif currentSig in self.calibCosmicMonSigs:
-                sigFolder = 'CalibCosmicMon'
-            else:
-                sigFolder = currentSig
-
             if currentSig in self.availableSignatures:
                 try:
-                    log.debug("[__generateChainConfigs] Trying to get chain config for %s in folder %s", currentSig, sigFolder)
+                    log.debug("[__generateChainConfigs] Trying to get chain config for %s", currentSig)
                     chainPartConfig = self.chainDefModule[currentSig].generateChainConfigs(chainPartDict)
                 except Exception:
                     log.error('[__generateChainConfigs] Problems creating ChainDef for chain %s ', chainName)