diff --git a/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py b/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py
index 34446ffa078e94d911d1bc2c1ab09b6f50012a4c..9b1cc0da3800610ae192f8f0b643ba7b0f10030f 100644
--- a/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py
+++ b/InnerDetector/InDetExample/InDetRecExample/python/InDetJobProperties.py
@@ -1168,6 +1168,12 @@ class checkDeadElementsOnTrack(InDetFlagsJobProperty):
   allowedTypes = ['bool']
   StoredValue  = True
 
+class doDigitalROTCreation(InDetFlagsJobProperty): 
+  """use PixelClusterOnTrackToolDigital during ROT creation to save CPU""" 
+  statusOn     = True 
+  allowedTypes = ['bool']
+  StoredValue  = False
+
 
 ##-----------------------------------------------------------------------------
 ## 2nd step
@@ -2778,7 +2784,8 @@ _list_InDetJobProperties = [Enabled,
                             doParticleConversion,
                             doStoreTrackSeeds,
                             doHIP300,
-                            checkDeadElementsOnTrack
+                            checkDeadElementsOnTrack,
+                            doDigitalROTCreation
                            ]
 for j in _list_InDetJobProperties: 
     jobproperties.InDetJobProperties.add_JobProperty(j)
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py
index c3869db5a601e14d7fc8961cbf49acf9d84e17a8..591e38058d82130212940c34d2d64aa1ef5d5a2c 100755
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecLoadTools.py
@@ -175,18 +175,23 @@ if InDetFlags.loadRotCreator():
             if InDetFlags.doDBM():
                 print PixelClusterOnTrackToolDBM
                 
-        PixelClusterOnTrackToolDigital = InDet__PixelClusterOnTrackTool("InDetPixelClusterOnTrackToolDigital",
-                                                                 LorentzAngleTool   = ToolSvc.PixelLorentzAngleTool,
-                                                                 DisableDistortions = (InDetFlags.doFatras() or InDetFlags.doDBMstandalone()),
-                                                                 applyNNcorrection = False,
-                                                                 NNIBLcorrection = False,
-                                                                 SplitClusterAmbiguityMap = InDetKeys.SplitClusterAmbiguityMap(),
-                                                                 RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi(),
-                                                                 ErrorStrategy = 2,
-                                                                 PositionStrategy = 1 
-                                                                 )
+        if InDetFlags.doDigitalROTCreation():
 
-        ToolSvc += PixelClusterOnTrackToolDigital
+            PixelClusterOnTrackToolDigital = InDet__PixelClusterOnTrackTool("InDetPixelClusterOnTrackToolDigital",
+                                                                            LorentzAngleTool   = ToolSvc.PixelLorentzAngleTool,
+                                                                            DisableDistortions = (InDetFlags.doFatras() or InDetFlags.doDBMstandalone()),
+                                                                            applyNNcorrection = False,
+                                                                            NNIBLcorrection = False,
+                                                                            SplitClusterAmbiguityMap = InDetKeys.SplitClusterAmbiguityMap(),
+                                                                            RunningTIDE_Ambi = InDetFlags.doTIDE_Ambi(),
+                                                                            ErrorStrategy = 2,
+                                                                            PositionStrategy = 1 
+                                                                            )
+
+            ToolSvc += PixelClusterOnTrackToolDigital
+
+        else :
+          PixelClusterOnTrackToolDigital = None
     else:
         PixelClusterOnTrackTool = None
         PixelClusterOnTrackToolDigital = None
@@ -236,11 +241,17 @@ if InDetFlags.loadRotCreator():
         InDet_SeedToTrackConversion = InDet__SeedToTrackConversionTool( name = "InDet_SeedToTrackConversion")
         ToolSvc += InDet_SeedToTrackConversion
     
-    InDetRotCreatorDigital = Trk__RIO_OnTrackCreator(name             = 'InDetRotCreatorDigital',
-                                              ToolPixelCluster = PixelClusterOnTrackToolDigital,
-                                              ToolSCT_Cluster  = SCT_ClusterOnTrackTool,
-                                              Mode             = 'indet')
-    ToolSvc += InDetRotCreatorDigital
+    if PixelClusterOnTrackToolDigital != None :
+        InDetRotCreatorDigital = Trk__RIO_OnTrackCreator(name             = 'InDetRotCreatorDigital',
+                                                         ToolPixelCluster = PixelClusterOnTrackToolDigital,
+                                                         ToolSCT_Cluster  = SCT_ClusterOnTrackTool,
+                                                         Mode             = 'indet')
+        ToolSvc += InDetRotCreatorDigital
+
+    else:
+        
+        InDetRotCreatorDigital=InDetRotCreator
+
 
     #
     # --- configure broad cluster ROT creator
diff --git a/InnerDetector/InDetRecTools/InDetAmbiTrackSelectionTool/src/InDetDenseEnvAmbiTrackSelectionTool.cxx b/InnerDetector/InDetRecTools/InDetAmbiTrackSelectionTool/src/InDetDenseEnvAmbiTrackSelectionTool.cxx
index ecf35181ca0a38fc9bcfb37a006f6663a40f0184..b18ffbb14887cacb08c73aae73eabf4385c549c3 100755
--- a/InnerDetector/InDetRecTools/InDetAmbiTrackSelectionTool/src/InDetDenseEnvAmbiTrackSelectionTool.cxx
+++ b/InnerDetector/InDetRecTools/InDetAmbiTrackSelectionTool/src/InDetDenseEnvAmbiTrackSelectionTool.cxx
@@ -1080,7 +1080,9 @@ bool InDet::InDetDenseEnvAmbiTrackSelectionTool::decideWhichHitsToKeep(const Trk
       lastbutonerot = lastrot;
       lastrot       = tsosDetails.RIO[index];
       lastrotindex  = index;   
-      continue;    
+      continue;
+    } else if (tsosDetails.type[index] == Outlier &&  tsosDetails.hitIsShared[index] <= 0){
+      continue;
     } else{ 
       if (m_monitorTracks)
         m_observerTool->rejectTrack(*ptrTrack, 106);		// rejection location 106: "Too many hits shared - we have to remove at least one PRD"
diff --git a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx
index 5885b4d530d6ab46a4c04b3c33cda786176ee1c4..900859b0b5b314bd96247de432c689d675550045 100644
--- a/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx
+++ b/Tracking/TrkTools/TrkAmbiguityProcessor/src/DenseEnvironmentsAmbiguityProcessorTool.cxx
@@ -1286,7 +1286,10 @@ const Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitPrds( const
     increment_by_eta(m_NbremFits,track);
 
     ATH_MSG_VERBOSE ("Brem track, refit with electron brem fit");
-    newTrack = fit(prds, *par, true, Trk::electron);
+    // TODO revert once GlobalChi2Fitter properly handles brem fits when 
+    //      starting from prds
+    // newTrack = fit(prds, *par, true, Trk::electron);
+    newTrack = fit(*track, true, Trk::electron);
 
   }
   else
@@ -1304,7 +1307,11 @@ const Trk::Track* Trk::DenseEnvironmentsAmbiguityProcessorTool::refitPrds( const
       increment_by_eta(m_NrecoveryBremFits,track);
 
       ATH_MSG_VERBOSE ("Normal fit failed, try brem recovery");
-      newTrack = fit(prds, *par, true, Trk::electron);
+      // TODO revert once GlobalChi2Fitter properly handles brem fits when 
+      //      starting from prds
+      // newTrack = fit(prds, *par, true, Trk::electron);
+      newTrack = fit(*track, true, Trk::electron);
+
     }
   }