diff --git a/Trigger/TrigAlgorithms/TrigmuComb/python/TrigmuCombConfig_newJO.py b/Trigger/TrigAlgorithms/TrigmuComb/python/TrigmuCombConfig_newJO.py
index 35c2417cf93cc122fa63cf32735682bf899b11a7..d23189846ac2532931f82e2a72100137066a03a6 100644
--- a/Trigger/TrigAlgorithms/TrigmuComb/python/TrigmuCombConfig_newJO.py
+++ b/Trigger/TrigAlgorithms/TrigmuComb/python/TrigmuCombConfig_newJO.py
@@ -36,9 +36,8 @@ def muCombCfg(flags, postFix="", useBackExtrp=True):
         idScanEndcap3Res = [0.036, 0.0000004]
         idScanEndcap4Res = [0.046, 0.0000002]
 
-    from TrigmuComb.TrigmuCombMTConfig import muCombMT
-    from TrigmuComb.TrigmuCombMonitoring import TrigMuCombMonitoring
-    muCombAlg = muCombMT(name                  = "Muon"+postFix,
+    muCombMT = CompFactory.muCombMT
+    muCombAlg = muCombMT(name                  = "MuComb"+postFix,
                          MuCombStrategy        = 0,
                          UseBackExtrapolatorG4 = useBackExtrp,
                          MinPtTRK              = 0.,
@@ -51,19 +50,20 @@ def muCombCfg(flags, postFix="", useBackExtrp=True):
                          IDSCANEndcap3Res      = idScanEndcap3Res,
                          IDSCANEndcap4Res      = idScanEndcap4Res,
                          IDalgo                = "InDetTrigTrackingxAODCnv_Muon_FTF",
-                         MonTool = TrigMuCombMonitoring() )
+                         MonTool = None)
 
     return acc, muCombAlg
 
     
-def l2MuCombRecoCfg(flags):
+def l2MuCombRecoCfg(flags, name="L2MuCombReco"):
 
     from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import InViewReco
-    reco = InViewReco("L2MuCombReco")
+    reco = InViewReco(name)
 
     acc, alg = muCombCfg(flags)
     alg.L2StandAloneMuonContainerName=muFastInfo
     alg.L2CombinedMuonContainerName = muCombInfo
+    alg.TrackParticlesContainerName="TrigFastTrackFinder_Tracks__Muon"
 
     muCombAcc = ComponentAccumulator()
     muCombAcc.addEventAlgo(alg)
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
index 4d7d83583376656992385c9e0bdd110d4013abd3..7c4c3d12940e0ece729e80c5b745d497eebb1b1b 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/LS2_v1_newJO.py
@@ -41,7 +41,11 @@ def setupMenu(flags):
     flags.Trigger.menu.muon = [        
         ChainProp(name='HLT_mu20_L1MU20', groups=SingleMuonGroup),
         ChainProp(name='HLT_mu10_L1MU10', groups=SingleMuonGroup),
-        ChainProp(name='HLT_mu8_L1MU6',   groups=SingleMuonGroup)
+        ChainProp(name='HLT_mu8_L1MU6',   groups=SingleMuonGroup),
+
+        ChainProp(name='HLT_mu20_msonly_L1MU20', groups=SingleMuonGroup),
+        ChainProp(name='HLT_mu10_msonly_L1MU10', groups=SingleMuonGroup),
+        ChainProp(name='HLT_mu8_msonly_L1MU6',   groups=SingleMuonGroup)
     ]
 
     flags.Trigger.menu.electron = [
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
index 5780500ccf8a50192d1d4fc3ccbc1db07a813019..a65743bad2dc1c60789ad2e023c118f186a5f8fb 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py
@@ -4,7 +4,9 @@ from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import CAMenuSequence, Chai
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 
 from TrigL2MuonSA.TrigL2MuonSAConfig_newJO import l2MuFastAlgCfg, l2MuFastHypoCfg
-from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMufastHypoToolFromDict, TrigMuonEFMSonlyHypoToolFromDict
+from TrigmuComb.TrigmuCombConfig_newJO import l2MuCombRecoCfg, l2MuCombHypoCfg
+from TrigMuonHypoMT.TrigMuonHypoMTConfig import TrigMufastHypoToolFromDict, TrigmuCombHypoToolFromDict, TrigMuonEFMSonlyHypoToolFromDict
+from TrigInDetConfig.TrigInDetConfig import TrigInDetConfig
 
 from TriggerMenuMT.HLTMenuConfig.Menu.ChainDictTools import splitChainDict
 
@@ -47,6 +49,13 @@ def MuFastViewDataVerifier():
     result.addEventAlgo(alg)
     return result
 
+def MuCombViewDataVerifier():
+    result = ComponentAccumulator()
+    alg = CompFactory.AthViews.ViewDataVerifier( name = "VDVMuComb",
+                                                 DataObjects = [( 'xAOD::L2StandAloneMuonContainer' , 'StoreGateSvc+MuonL2SAInfo' )])
+    result.addEventAlgo(alg)
+    return result
+
 #Not the ideal place to keep the track cnv alg configuration. Temproarily adding it here 
 #until a better location can be found
 def MuonTrackCollectionCnvToolCfg(flags, name = "MuonTrackCollectionCnvTool", **kwargs):
@@ -210,82 +219,119 @@ def generateChains( flags, chainDict ):
 
     l2muFastStep = ChainStep( name=stepName, Sequences=[l2muFastSequence], chainDicts=[chainDict] )
 
-    ### Set muon step2 ###
-    # Please set up L2muComb step here
-
-    #EF MS only
-    stepEFMSName = 'EFMSMuon'
-    stepEFMSReco, stepEFMSView = createStepView(stepEFMSName)
-
-    #Clone and replace offline flags so we can set muon trigger specific values
-    muonflags = flags.cloneAndReplace('Muon', 'Trigger.Offline.Muon')
-    muonflags.Muon.useTGCPriorNextBC=True
-    muonflags.Muon.enableErrorTuning=False
-    muonflags.Muon.MuonTrigger=True
-    muonflags.Muon.SAMuonTrigger=True
-    muonflags.lock()
-
-    accMS = ComponentAccumulator()
-    accMS.addSequence(stepEFMSView)
-
-    from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import InViewReco
-    recoMS = InViewReco("EFMuMSReco")
-    recoMS.inputMaker().RequireParentView = True
+    if 'msonly' not in chainDict['chainName']: 
+        #only run in combined muon chains
+        ### Set muon step2 - L2muComb ###
+        stepL2CBName = 'L2MuonCB'
+        stepL2CBReco, stepL2CBView = createStepView(stepL2CBName)
+
+        accL2CB = ComponentAccumulator()
+        accL2CB.addSequence(stepL2CBView)
+        
+        # Set EventViews for L2MuonCB step
+        recoL2CB = l2MuCombRecoCfg(flags)
+        #external data loading to view
+        recoL2CB.inputMaker().RequireParentView = True
+        recoL2CB.mergeReco( MuCombViewDataVerifier() )
+
+        #ID tracking
+        #(Using electron specific flags for now until muon specific flags are available)
+        flagsID = flags.cloneAndReplace("InDet.Tracking", "Trigger.InDetTracking.Electron")
+        accID = TrigInDetConfig( flagsID, roisKey=recoL2CB.inputMaker().InViewRoIs, signatureName="Muon" )
+        recoL2CB.mergeReco(accID)
+        
+        accL2CB.merge(recoL2CB, sequenceName = stepL2CBReco.getName())
+
+        l2muCombHypo = l2MuCombHypoCfg( flags,
+                                        name = 'TrigL2MuCombHypo',
+                                        muCombInfo = 'HLT_MuonL2CBInfo' )
+
+        accL2CB.addEventAlgo(l2muCombHypo, sequenceName=stepL2CBView.getName())
+
+        l2muCombSequence = CAMenuSequence( Sequence = recoL2CB.sequence(),
+                                           Maker = recoL2CB.inputMaker(),
+                                           Hypo = l2muCombHypo,
+                                           HypoToolGen = TrigmuCombHypoToolFromDict,
+                                           CA = accL2CB )
+
+        l2muCombStep = ChainStep( name=stepL2CBName, Sequences=[l2muCombSequence], chainDicts=[chainDict] )
     
-    #Probably this block will eventually need to move somewhere more central
-    from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
-    accMS.merge( BeamPipeGeometryCfg(flags) ) 
-    
-    from PixelGeoModel.PixelGeoModelConfig import PixelGeometryCfg
-    accMS.merge(PixelGeometryCfg(flags))
+
+    if 'msonly' in chainDict['chainName']: 
+        #only runningn in MS-only chains for now
+        #EF MS only
+        stepEFMSName = 'EFMSMuon'
+        stepEFMSReco, stepEFMSView = createStepView(stepEFMSName)
+
+        #Clone and replace offline flags so we can set muon trigger specific values
+        muonflags = flags.cloneAndReplace('Muon', 'Trigger.Offline.Muon')
+        muonflags.Muon.useTGCPriorNextBC=True
+        muonflags.Muon.enableErrorTuning=False
+        muonflags.Muon.MuonTrigger=True
+        muonflags.Muon.SAMuonTrigger=True
+        muonflags.lock()
+        
+        accMS = ComponentAccumulator()
+        accMS.addSequence(stepEFMSView)
+
+        from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import InViewReco
+        recoMS = InViewReco("EFMuMSReco")
+        recoMS.inputMaker().RequireParentView = True
     
-    from SCT_GeoModel.SCT_GeoModelConfig import SCT_GeometryCfg
-    accMS.merge(SCT_GeometryCfg(flags))
+        #Probably this block will eventually need to move somewhere more central
+        from BeamPipeGeoModel.BeamPipeGMConfig import BeamPipeGeometryCfg
+        accMS.merge( BeamPipeGeometryCfg(flags) ) 
+        
+        from PixelGeoModel.PixelGeoModelConfig import PixelGeometryCfg
+        accMS.merge(PixelGeometryCfg(flags))
     
-    from TRT_GeoModel.TRT_GeoModelConfig import TRT_GeometryCfg
-    accMS.merge(TRT_GeometryCfg(flags))
+        from SCT_GeoModel.SCT_GeoModelConfig import SCT_GeometryCfg
+        accMS.merge(SCT_GeometryCfg(flags))
+        
+        from TRT_GeoModel.TRT_GeoModelConfig import TRT_GeometryCfg
+        accMS.merge(TRT_GeometryCfg(flags))
     
-    from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg
-    accMS.merge(TrackingGeometrySvcCfg(flags))
-    ###################
+        from TrkConfig.AtlasTrackingGeometrySvcConfig import TrackingGeometrySvcCfg
+        accMS.merge(TrackingGeometrySvcCfg(flags))
+        ###################
     
-    EFMuonViewDataVerifier = EFMuonViewDataVerifierCfg()
-    recoMS.mergeReco(EFMuonViewDataVerifier)
+        EFMuonViewDataVerifier = EFMuonViewDataVerifierCfg()
+        recoMS.mergeReco(EFMuonViewDataVerifier)
 
-    from MuonConfig.MuonSegmentFindingConfig import MooSegmentFinderAlgCfg
-    segCfg = MooSegmentFinderAlgCfg(muonflags,name="TrigMooSegmentFinder",UseTGCNextBC=False, UseTGCPriorBC=False)
-    recoMS.mergeReco(segCfg)
+        from MuonConfig.MuonSegmentFindingConfig import MooSegmentFinderAlgCfg
+        segCfg = MooSegmentFinderAlgCfg(muonflags,name="TrigMooSegmentFinder",UseTGCNextBC=False, UseTGCPriorBC=False)
+        recoMS.mergeReco(segCfg)
 
-    from MuonConfig.MuonTrackBuildingConfig import MuonTrackBuildingCfg
-    trkCfg = MuonTrackBuildingCfg(muonflags, name="TrigMuPatTrackBuilder")
-    recoMS.mergeReco(trkCfg)
+        from MuonConfig.MuonTrackBuildingConfig import MuonTrackBuildingCfg
+        trkCfg = MuonTrackBuildingCfg(muonflags, name="TrigMuPatTrackBuilder")
+        recoMS.mergeReco(trkCfg)
 
-    cnvCfg = MuonTrackParticleCnvCfg(muonflags, name = "TrigMuonTrackParticleCnvAlg")
-    recoMS.mergeReco(cnvCfg)
+        cnvCfg = MuonTrackParticleCnvCfg(muonflags, name = "TrigMuonTrackParticleCnvAlg")
+        recoMS.mergeReco(cnvCfg)
 
-    from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedMuonCandidateAlgCfg
-    candCfg = MuonCombinedMuonCandidateAlgCfg(muonflags, name = "TrigMuonCandidateAlg")
-    recoMS.mergeReco(candCfg)
+        from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedMuonCandidateAlgCfg
+        candCfg = MuonCombinedMuonCandidateAlgCfg(muonflags, name = "TrigMuonCandidateAlg")
+        recoMS.mergeReco(candCfg)
 
-    from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg
-    creatorCfg = MuonCreatorAlgCfg(muonflags, name = "TrigMuonCreatorAlg")
-    recoMS.mergeReco(creatorCfg)
+        from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCreatorAlgCfg
+        creatorCfg = MuonCreatorAlgCfg(muonflags, name = "TrigMuonCreatorAlg")
+        recoMS.mergeReco(creatorCfg)
 
-    accMS.merge(recoMS, sequenceName=stepEFMSReco.getName())
+        accMS.merge(recoMS, sequenceName=stepEFMSReco.getName())
 
-    efmuMSHypo = efMuMSHypoCfg( muonflags,
-                                name = 'TrigMuonEFMSonlyHypo',
-                                inputMuons = "Muons" )
+        efmuMSHypo = efMuMSHypoCfg( muonflags,
+                                    name = 'TrigMuonEFMSonlyHypo',
+                                    inputMuons = "Muons" )
 
-    accMS.addEventAlgo(efmuMSHypo, sequenceName=stepEFMSView.getName())
+        accMS.addEventAlgo(efmuMSHypo, sequenceName=stepEFMSView.getName())
 
-    efmuMSSequence = CAMenuSequence( Sequence = recoMS.sequence(),
-                                     Maker = recoMS.inputMaker(),
-                                     Hypo = efmuMSHypo, 
-                                     HypoToolGen = TrigMuonEFMSonlyHypoToolFromDict,
-                                     CA = accMS )
+        efmuMSSequence = CAMenuSequence( Sequence = recoMS.sequence(),
+                                         Maker = recoMS.inputMaker(),
+                                         Hypo = efmuMSHypo, 
+                                         HypoToolGen = TrigMuonEFMSonlyHypoToolFromDict,
+                                         CA = accMS )
 
-    efmuMSStep = ChainStep( name=stepEFMSName, Sequences=[efmuMSSequence], chainDicts=[chainDict] )
+        efmuMSStep = ChainStep( name=stepEFMSName, Sequences=[efmuMSSequence], chainDicts=[chainDict] )
 
     l1Thresholds=[]
     for part in chainDict['chainParts']:
@@ -293,7 +339,9 @@ def generateChains( flags, chainDict ):
     
     log.debug('dictionary is: %s\n', pprint.pformat(chainDict))
 
-
-    chain = Chain( name=chainDict['chainName'], L1Thresholds=l1Thresholds, ChainSteps=[ l2muFastStep, efmuMSStep ] )
+    if 'msonly' in chainDict['chainName']: 
+        chain = Chain( name=chainDict['chainName'], L1Thresholds=l1Thresholds, ChainSteps=[ l2muFastStep, efmuMSStep ] )
+    else:
+        chain = Chain( name=chainDict['chainName'], L1Thresholds=l1Thresholds, ChainSteps=[ l2muFastStep, l2muCombStep ] )
     return chain