diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt
index c0869686e13d8d77691068c47db1548bc47eb3cc..983950c19217d0144f36496538456df0387c7b3d 100644
--- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/CMakeLists.txt
@@ -67,9 +67,15 @@ athenapoolmultitest_run_test( AthenaPoolMultiTestEventSplitDecision EventSplitDe
 athenapoolmultitest_run_test( AthenaPoolMultiTestEventNoSplit EventNoSplit_jo
                               post_check_es
                               DEPENDS AthenaPoolMultiTestBuildInput )
+athenapoolmultitest_run_test( AthenaPoolMultiTestPropagate DecisionPropagation_jo
+                              post_check_p
+                              DEPENDS AthenaPoolMultiTestEventSplitDecision )
 athenapoolmultitest_run_test( AthenaPoolMultiTestStreamSelect CheckStreamSelector_jo
                               post_check_ss
-                              DEPENDS AthenaPoolMultiTestEventNoSplit )
+                              DEPENDS AthenaPoolMultiTestEventSplitDecision )
+athenapoolmultitest_run_test( AthenaPoolMultiTestPropagateSelect CheckStreamPropagate_jo
+                              post_check_ss
+                              DEPENDS AthenaPoolMultiTestPropagate )
 #athenapoolmultitest_run_test( AthenaPoolMultiTestCheckNull CheckNull_jo
 #                              post_check_cn
 #                              DEPENDS AthenaPoolMultiTestEventSplit )
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestPropagate.ref b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestPropagate.ref
new file mode 100644
index 0000000000000000000000000000000000000000..0b703c702c847f2d28d7bdcb3ac598adf589e96d
--- /dev/null
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestPropagate.ref
@@ -0,0 +1,13 @@
+Py:Athena            INFO including file "AthenaPoolMultiTest/ExampleStreamConfig.py"
+PoolSvc              INFO Setting up APR FileCatalog and Streams
+DecisionSvc          INFO Inserting stream: StreamAllP with no Algs
+OutputStreamSeq...   INFO Initializing OutputStreamSequencerSvc - package version AthenaServices-00-00-00
+StreamAllP.Stre...   INFO Initializing StreamAllP.StreamAllPTool - package version AthenaServices-00-00-00
+StreamAllP.Stre...   INFO Initializing StreamAllP.StreamAllP_MakeEventStreamInfo - package version OutputStreamAthenaPool-00-00-00
+StreamAllP           INFO Found HelperTools = PrivateToolHandleArray(['MakeEventStreamInfo/StreamAllP_MakeEventStreamInfo'])
+StreamAllP           INFO Data output: AthenaPoolMultiTest_Propagate.root
+StreamAllP           INFO I/O reinitialization...
+StorageSvc           INFO EventStreamInfo_p3 [11DF1B8C-0DEE-4687-80D7-E74B520ACBB4]
+StreamAllP           INFO Records written: 21
+ItemListSvc         DEBUG STREAM StreamAllP has (7) items
+ItemListSvc         DEBUG    - EventStreamInfo_StreamAllP
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestPropagateSelect.ref b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestPropagateSelect.ref
new file mode 100644
index 0000000000000000000000000000000000000000..9ce5037483694fd1e2f7166f84f766a91b174966
--- /dev/null
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/AthenaPoolMultiTestPropagateSelect.ref
@@ -0,0 +1,445 @@
+ReadData             INFO in initialize()
+EventSelector.S...  DEBUG Property update for OutputLevel : new value = 2
+EventSelector.S...  DEBUG Property update for OutputLevel : new value = 2
+EventSelector.S...  DEBUG Property update for OutputLevel : new value = 2
+EventSelector        INFO reinitialization...
+EventSelector.S...  DEBUG ... postInitialize
+EventSelector.S...  DEBUG ... postInitialize
+EventSelector.S...  DEBUG ... postInitialize
+EventSelector        INFO EventSelection with query 
+AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+ReadData             INFO EventStreamInfo: Number of events = 20
+ReadData             INFO EventStreamInfo: ItemList:
+ReadData             INFO CLID = 2101, key = McEventInfo
+ReadData             INFO CLID = 9102, key = MyHits
+ReadData             INFO CLID = 1287802, key = ExcludeTestTrigMap
+ReadData             INFO CLID = 1287802, key = MultiTestTrigMap
+ReadData             INFO CLID = 38853911, key = EventInfoAux.
+ReadData             INFO CLID = 45903698, key = EventInfo
+ReadData             INFO CLID = 222376821, key = StreamAllP
+ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
+ReadData             INFO TagInfo: 
+ReadData             INFO EventInfo event: 0 run: 0
+ReadData             INFO Get Smart data ptr 1
+ReadData             INFO Could not find ExampleTrackContainer/MyTracks
+ReadData             INFO Hit x = 1.2 y = -2.3 z = 226.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 4.4 y = -8.0 z = 94.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 7.6 y = -13.7 z = 70.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 10.8 y = -19.3 z = 59.9 detector = DummyHitDetector
+ReadData             INFO Hit x = 14.0 y = -25.0 z = 54.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 17.2 y = -30.7 z = 50.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 20.4 y = -36.4 z = 48.1 detector = DummyHitDetector
+ReadData             INFO Hit x = 23.7 y = -42.0 z = 46.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 26.9 y = -47.7 z = 44.9 detector = DummyHitDetector
+ReadData             INFO Hit x = 30.1 y = -53.4 z = 43.8 detector = DummyHitDetector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 3
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 4
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 5
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 1
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 6
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+ReadData             INFO EventStreamInfo: Number of events = 20
+ReadData             INFO EventStreamInfo: ItemList:
+ReadData             INFO CLID = 2101, key = McEventInfo
+ReadData             INFO CLID = 9102, key = MyHits
+ReadData             INFO CLID = 1287802, key = ExcludeTestTrigMap
+ReadData             INFO CLID = 1287802, key = MultiTestTrigMap
+ReadData             INFO CLID = 38853911, key = EventInfoAux.
+ReadData             INFO CLID = 45903698, key = EventInfo
+ReadData             INFO CLID = 222376821, key = StreamAllP
+ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
+ReadData             INFO TagInfo: 
+ReadData             INFO EventInfo event: 6 run: 0
+ReadData             INFO Get Smart data ptr 1
+ReadData             INFO Could not find ExampleTrackContainer/MyTracks
+ReadData             INFO Hit x = 601.2 y = -2.3 z = -373.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 604.4 y = -8.0 z = -505.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 607.6 y = -13.7 z = -529.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 610.8 y = -19.3 z = -540.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 614.0 y = -25.0 z = -545.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 617.2 y = -30.7 z = -549.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 620.4 y = -36.4 z = -551.8 detector = DummyHitDetector
+ReadData             INFO Hit x = 623.7 y = -42.0 z = -553.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 626.9 y = -47.7 z = -555.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 630.1 y = -53.4 z = -556.1 detector = DummyHitDetector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 2
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 2
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 8
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 2
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 2
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 9
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 3
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 3
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+ReadData             INFO EventStreamInfo: Number of events = 20
+ReadData             INFO EventStreamInfo: ItemList:
+ReadData             INFO CLID = 2101, key = McEventInfo
+ReadData             INFO CLID = 9102, key = MyHits
+ReadData             INFO CLID = 1287802, key = ExcludeTestTrigMap
+ReadData             INFO CLID = 1287802, key = MultiTestTrigMap
+ReadData             INFO CLID = 38853911, key = EventInfoAux.
+ReadData             INFO CLID = 45903698, key = EventInfo
+ReadData             INFO CLID = 222376821, key = StreamAllP
+ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
+ReadData             INFO TagInfo: 
+ReadData             INFO EventInfo event: 9 run: 0
+ReadData             INFO Get Smart data ptr 1
+ReadData             INFO Could not find ExampleTrackContainer/MyTracks
+ReadData             INFO Hit x = 901.2 y = -2.3 z = -673.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 904.4 y = -8.0 z = -805.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 907.6 y = -13.7 z = -829.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 910.8 y = -19.3 z = -840.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 914.0 y = -25.0 z = -845.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 917.2 y = -30.7 z = -849.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 920.4 y = -36.4 z = -851.8 detector = DummyHitDetector
+ReadData             INFO Hit x = 923.7 y = -42.0 z = -853.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 926.9 y = -47.7 z = -855.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 930.1 y = -53.4 z = -856.1 detector = DummyHitDetector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 3
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 3
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 11
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 3
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 3
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 12
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 4
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 4
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+ReadData             INFO EventStreamInfo: Number of events = 20
+ReadData             INFO EventStreamInfo: ItemList:
+ReadData             INFO CLID = 2101, key = McEventInfo
+ReadData             INFO CLID = 9102, key = MyHits
+ReadData             INFO CLID = 1287802, key = ExcludeTestTrigMap
+ReadData             INFO CLID = 1287802, key = MultiTestTrigMap
+ReadData             INFO CLID = 38853911, key = EventInfoAux.
+ReadData             INFO CLID = 45903698, key = EventInfo
+ReadData             INFO CLID = 222376821, key = StreamAllP
+ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
+ReadData             INFO TagInfo: 
+ReadData             INFO EventInfo event: 12 run: 0
+ReadData             INFO Get Smart data ptr 1
+ReadData             INFO Could not find ExampleTrackContainer/MyTracks
+ReadData             INFO Hit x = 1201.2 y = -2.3 z = -973.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1204.4 y = -8.0 z = -1105.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 1207.6 y = -13.7 z = -1129.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1210.8 y = -19.3 z = -1140.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1214.0 y = -25.0 z = -1145.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1217.2 y = -30.7 z = -1149.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1220.4 y = -36.4 z = -1151.8 detector = DummyHitDetector
+ReadData             INFO Hit x = 1223.7 y = -42.0 z = -1153.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 1226.9 y = -47.7 z = -1155.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1230.1 y = -53.4 z = -1156.1 detector = DummyHitDetector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 4
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 4
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 14
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 4
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 4
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 15
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 5
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 5
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+ReadData             INFO EventStreamInfo: Number of events = 20
+ReadData             INFO EventStreamInfo: ItemList:
+ReadData             INFO CLID = 2101, key = McEventInfo
+ReadData             INFO CLID = 9102, key = MyHits
+ReadData             INFO CLID = 1287802, key = ExcludeTestTrigMap
+ReadData             INFO CLID = 1287802, key = MultiTestTrigMap
+ReadData             INFO CLID = 38853911, key = EventInfoAux.
+ReadData             INFO CLID = 45903698, key = EventInfo
+ReadData             INFO CLID = 222376821, key = StreamAllP
+ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
+ReadData             INFO TagInfo: 
+ReadData             INFO EventInfo event: 15 run: 0
+ReadData             INFO Get Smart data ptr 1
+ReadData             INFO Could not find ExampleTrackContainer/MyTracks
+ReadData             INFO Hit x = 1501.2 y = -2.3 z = -1273.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1504.4 y = -8.0 z = -1405.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 1507.6 y = -13.7 z = -1429.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1510.8 y = -19.3 z = -1440.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1514.0 y = -25.0 z = -1445.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1517.2 y = -30.7 z = -1449.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1520.4 y = -36.4 z = -1451.8 detector = DummyHitDetector
+ReadData             INFO Hit x = 1523.7 y = -42.0 z = -1453.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 1526.9 y = -47.7 z = -1455.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1530.1 y = -53.4 z = -1456.1 detector = DummyHitDetector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 6
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 6
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+ReadData             INFO EventStreamInfo: Number of events = 20
+ReadData             INFO EventStreamInfo: ItemList:
+ReadData             INFO CLID = 2101, key = McEventInfo
+ReadData             INFO CLID = 9102, key = MyHits
+ReadData             INFO CLID = 1287802, key = ExcludeTestTrigMap
+ReadData             INFO CLID = 1287802, key = MultiTestTrigMap
+ReadData             INFO CLID = 38853911, key = EventInfoAux.
+ReadData             INFO CLID = 45903698, key = EventInfo
+ReadData             INFO CLID = 222376821, key = StreamAllP
+ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
+ReadData             INFO TagInfo: 
+ReadData             INFO EventInfo event: 16 run: 0
+ReadData             INFO Get Smart data ptr 1
+ReadData             INFO Could not find ExampleTrackContainer/MyTracks
+ReadData             INFO Hit x = 1601.2 y = -2.3 z = -1373.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1604.4 y = -8.0 z = -1505.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 1607.6 y = -13.7 z = -1529.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1610.8 y = -19.3 z = -1540.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1614.0 y = -25.0 z = -1545.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1617.2 y = -30.7 z = -1549.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1620.4 y = -36.4 z = -1551.8 detector = DummyHitDetector
+ReadData             INFO Hit x = 1623.7 y = -42.0 z = -1553.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 1626.9 y = -47.7 z = -1555.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1630.1 y = -53.4 z = -1556.1 detector = DummyHitDetector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 6
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 6
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 18
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 7
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 7
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+ReadData             INFO EventStreamInfo: Number of events = 20
+ReadData             INFO EventStreamInfo: ItemList:
+ReadData             INFO CLID = 2101, key = McEventInfo
+ReadData             INFO CLID = 9102, key = MyHits
+ReadData             INFO CLID = 1287802, key = ExcludeTestTrigMap
+ReadData             INFO CLID = 1287802, key = MultiTestTrigMap
+ReadData             INFO CLID = 38853911, key = EventInfoAux.
+ReadData             INFO CLID = 45903698, key = EventInfo
+ReadData             INFO CLID = 222376821, key = StreamAllP
+ReadData             INFO EventType: Event type: sim/data -  is sim , testbeam/atlas -  is atlas , calib/physics -  is physics 
+ReadData             INFO TagInfo: 
+ReadData             INFO EventInfo event: 18 run: 0
+ReadData             INFO Get Smart data ptr 1
+ReadData             INFO Could not find ExampleTrackContainer/MyTracks
+ReadData             INFO Hit x = 1801.2 y = -2.3 z = -1573.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1804.4 y = -8.0 z = -1705.2 detector = DummyHitDetector
+ReadData             INFO Hit x = 1807.6 y = -13.7 z = -1729.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1810.8 y = -19.3 z = -1740.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1814.0 y = -25.0 z = -1745.7 detector = DummyHitDetector
+ReadData             INFO Hit x = 1817.2 y = -30.7 z = -1749.3 detector = DummyHitDetector
+ReadData             INFO Hit x = 1820.4 y = -36.4 z = -1751.8 detector = DummyHitDetector
+ReadData             INFO Hit x = 1823.7 y = -42.0 z = -1753.6 detector = DummyHitDetector
+ReadData             INFO Hit x = 1826.9 y = -47.7 z = -1755.0 detector = DummyHitDetector
+ReadData             INFO Hit x = 1830.1 y = -53.4 z = -1756.1 detector = DummyHitDetector
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector1: For  'SelectedStream':Stream1 cutflow events = 7
+EventSelector        INFO Request skipping event from: EventSelector.Selector1
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...   INFO Rejecting event
+EventSelector.S...  DEBUG EventSelector.Selector2: For  'SelectedStream':Stream1 cutflow events = 7
+EventSelector        INFO Request skipping event from: EventSelector.Selector2
+EventSelector.S...   INFO StreamSelectorTool::postNext
+EventSelector.S...  DEBUG Found attribute list
+EventSelector.S...  ERROR Stream decision for  'SelectedStream':StreamX does not exist in input
+EventSelector.S...  DEBUG EventSelector.SelectorX: For  'SelectedStream':StreamX cutflow events = 0
+EventSelector        INFO skipping event 20
+EventSelector        INFO Disconnecting input sourceID: 576C6C8B-1EC6-8A46-9DFC-612955C23C42
+ReadData             INFO in finalize()
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/CheckStreamPropagate_jo.py b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/CheckStreamPropagate_jo.py
new file mode 100755
index 0000000000000000000000000000000000000000..67dadfe9cd61082c95bd190c5a6106aef6af54ae
--- /dev/null
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/CheckStreamPropagate_jo.py
@@ -0,0 +1,90 @@
+## @file CheckExplicit_jo.py
+## @brief TopOptions (but dependent SplittableData_jo.py, EventSplit_jo.py):
+## Checks that the root collection is readable with the EventSelector
+## @author Jack Cranshaw (Jack.Cranshaw@cern.ch)
+## $Id: CheckExplicit_jo.py,v 1.9 2009-05-20 13:34:21 cranshaw Exp $
+###############################################################
+#
+# Job options file
+#
+#==============================================================
+
+#--------------------------------------------------------------
+# Event related parameters
+#--------------------------------------------------------------
+from AthenaCommon.AlgSequence import AthSequencer
+topSequence = AthSequencer("AthAlgSeq")
+athRegSeq = AthSequencer("AthRegSeq")
+
+from AthenaCommon.AppMgr import theApp
+
+from AthenaCommon.AppMgr import ServiceMgr as svcMgr
+
+theApp.EvtMax = 200000
+
+#--------------------------------------------------------------
+# Load POOL support
+#--------------------------------------------------------------
+include( "AthenaPoolExampleConverter/AthenaPoolExampleConverter_jobOption.py" )
+include( "AthenaPoolTestAthenaPool/AthenaPoolTestAthenaPool_joboptions.py" )
+#--------------------------------------------------------------
+#---   Read portion  -----
+#--------------------------------------------------------------
+import AthenaPoolCnvSvc.ReadAthenaPool
+
+from PoolSvc.PoolSvcConf import PoolSvc
+svcMgr += PoolSvc()
+PoolSvc = svcMgr.PoolSvc
+PoolSvc.ReadCatalog = ["xmlcatalog_file:EventSplit.xml"]
+
+EventSelector = svcMgr.EventSelector
+EventSelector.InputCollections  = [ "AthenaPoolMultiTest_Propagate.root" ]; 
+
+# Include the StreamSelectorTool
+from EventBookkeeperTools.EventBookkeeperToolsConf import StreamSelectorTool
+# Select existing Stream1
+selector1 = StreamSelectorTool("Selector1")
+selector1.SelectedStream = "Stream1"
+selector1.OutputLevel = DEBUG
+svcMgr.EventSelector.HelperTools += [selector1]
+# Select existing Stream1, but use a separate CutFlowSvc
+# Create the CutFlowSvc instance(s)
+from EventBookkeeperTools.EventBookkeeperToolsConf import CutFlowSvc
+cfs = CfgMgr.CutFlowSvc("SS_CutFlowSvc")
+svcMgr += cfs
+cfs.InputStream = "StreamAll"
+cfs.OutputCollName = "StreamSelect"
+cfs.OutputIncompleteCollName = "IncompleteStreamSelect"
+
+selector2 = StreamSelectorTool("Selector2")
+selector2.SelectedStream = "Stream1"
+selector2.CutFlowSvc = cfs
+selector2.OutputLevel = DEBUG
+svcMgr.EventSelector.HelperTools += [selector2]
+# Select non-existing StreamX
+selectorx = StreamSelectorTool("SelectorX")
+selectorx.SelectedStream = "StreamX"
+selectorx.OutputLevel = DEBUG
+svcMgr.EventSelector.HelperTools += [selectorx]
+
+#--------------------------------------------------------------
+# Configure the filters
+#--------------------------------------------------------------
+from AthenaPoolExampleAlgorithms.AthenaPoolExampleAlgorithmsConf import AthPoolEx__ReadData
+
+topSequence += AthPoolEx__ReadData("ReadData")
+#from AthenaPoolMultiTest.AthenaPoolMultiTestConf import EventTagReader
+
+from AthenaPoolMultiTest.AthenaPoolMultiTestConf import *
+
+#--------------------------------------------------------------
+# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL)
+#--------------------------------------------------------------
+svcMgr.MessageSvc.infoLimit = 5000
+svcMgr.MessageSvc.debugLimit = 5000
+svcMgr.MessageSvc.OutputLevel = INFO
+#==============================================================
+#
+# End of job options file
+#
+###############################################################
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/DecisionPropagation_jo.py b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/DecisionPropagation_jo.py
new file mode 100755
index 0000000000000000000000000000000000000000..4c1789e960cdb342c3ea47ca4cd41bf530dab62a
--- /dev/null
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/share/DecisionPropagation_jo.py
@@ -0,0 +1,76 @@
+#####################################################################
+#
+## @file EventSplitDecision_jo.py
+## @brief
+## Second part of AthenaPoolMultiTest gmake check
+##<br><br>
+## @author JackCranshaw (Jack.Cranshaw@cern.ch)
+## $Id: EventNoSplit_jo.py,v 1.27 2009-05-20 13:34:21 cranshaw Exp $
+#====================================================================
+
+#--------------------------------------------------------------
+# Event related parameters
+#--------------------------------------------------------------
+from AthenaCommon.AlgSequence import AthSequencer
+topSequence = AthSequencer("AthAlgSeq")
+athOutSeq = AthSequencer("AthOutSeq")
+
+from xAODEventInfoCnv.xAODEventInfoCnvConf import xAODMaker__EventInfoCnvAlg
+alg = xAODMaker__EventInfoCnvAlg()
+topSequence += alg
+
+
+from AthenaCommon.AppMgr import theApp
+theApp.EvtMax = 200000
+
+#--------------------------------------------------------------
+# Load POOL support
+#--------------------------------------------------------------
+import AthenaPoolCnvSvc.ReadAthenaPool
+
+from AthenaCommon.AppMgr import ServiceMgr as svcMgr
+
+from PoolSvc.PoolSvcConf import PoolSvc
+svcMgr += PoolSvc()
+PoolSvc = svcMgr.PoolSvc
+PoolSvc.ReadCatalog = ["xmlcatalog_file:EventSplit.xml"]
+ 
+svcMgr.EventSelector.InputCollections =  ["AthenaPoolMultiTest_StreamAll2.root"]
+svcMgr.AthenaPoolAddressProviderSvc.DataHeaderIterator = False
+
+#--------------------------------------------------------------
+# Private Application Configuration options
+#--------------------------------------------------------------
+# include stream transform
+include( "AthenaPoolMultiTest/ExampleStreamConfig.py" )
+
+from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream
+# Unfiltered stream
+StreamAll = AthenaPoolOutputStream( "StreamAllP", "AthenaPoolMultiTest_Propagate.root", False, noTag=False, decisionFilter="Stream" )
+StreamAll.CheckNumberOfWrites = False
+StreamAll.WritingTool.AttributeListKey="SimpleTag"
+StreamAll.WritingTool.SaveDecisions = False
+StreamAll.TakeItemsFromInput = True
+StreamAll.ForceRead=TRUE
+
+#EventInfoTagBuilder.FilterString = "Stream"
+#EventInfoTagBuilder.PropagateInput=True
+
+# Add the outputstreams to the execution sequence
+#athOutSeq+=StreamAll
+
+#--------------------------------------------------------------
+# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL)
+#--------------------------------------------------------------
+svcMgr.MessageSvc.OutputLevel = INFO
+svcMgr.MessageSvc.debugLimit = 5000
+import AthenaCommon.CfgMgr as CfgMgr
+if not hasattr(svcMgr, 'DecisionSvc'): svcMgr += CfgMgr.DecisionSvc()
+svcMgr.DecisionSvc.CalcStats = True
+if not hasattr(svcMgr, 'ItemListSvc'): svcMgr += CfgMgr.ItemListSvc()
+svcMgr.ItemListSvc.OutputLevel = DEBUG
+#==============================================================
+#
+# End of job options file
+#
+###############################################################
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/test/post_check_es.sh b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/test/post_check_es.sh
index 2bf2305388210a534ce8166cd88a5c5323e1b775..8a2f378070633aad926062bffdb888c7bf89bef8 100755
--- a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/test/post_check_es.sh
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/test/post_check_es.sh
@@ -22,6 +22,7 @@ else
 	reflog=../share/${test}.ref
         grep -e 'Splitter' \
              -e 'Triggered' \
+             -e 'EventInfoTag' \
              -e 'Stream' \
              -e 'Coll' \
              -e 'Others' \
diff --git a/AtlasTest/DatabaseTest/AthenaPoolMultiTest/test/post_check_p.sh b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/test/post_check_p.sh
new file mode 100755
index 0000000000000000000000000000000000000000..cac3c0e3e53324aa1fe1d105ea26a96902858fa3
--- /dev/null
+++ b/AtlasTest/DatabaseTest/AthenaPoolMultiTest/test/post_check_p.sh
@@ -0,0 +1,124 @@
+#!/bin/sh 
+#/** @file post_check_es.sh
+# @brief sh script that check the return code of an executable and compares
+# its output with a reference (if available). Modified to restrict checks
+# to output from AthenaPoolMultiTest EventSplit test.
+# @param test_name
+#
+# @author Jack Cranshaw (Jack.Cranshaw@cern.ch), Paolo Calafiura.
+# $Id: post_check_es.sh,v 1.6 2009-04-01 21:18:33 cranshaw Exp $
+# **/
+test=$1
+status=${?}
+if [ -z "$status" ]
+    then
+    echo " post_check_es.sh> Warning: athena exit status is not available "
+else 
+    # check exit status
+    joblog=${test}.log
+    if [ "$status" = 0 ]
+	then 
+	#echo " post_check_es.sh> OK: ${test} exited normally. Output is in $joblog "
+	reflog=../share/${test}.ref
+        grep -e 'Splitter' \
+             -e 'Triggered' \
+             -e 'EventInfoTag' \
+             -e 'Stream' \
+             -e 'Coll' \
+             -e 'Others' \
+             -e 'Bad' \
+             -e 'ERROR' \
+             -e 'Error' \
+             ${joblog} | 
+             grep -v 'StreamAll2' |
+             grep -v 'RootDatabase.open' |
+             grep -v 'Handler' |
+             grep -v 'EventSelectorAthenaPool' |\
+             grep -v 'CLIDRegistry' |\
+             grep -v 'PassNumber' |\
+             grep -v 'POOLCollFactory' |\
+             grep -v 'PoolXMLFileCatalog' |\
+             grep -v 'AthenaSealSvc' |\
+             grep -v 'EventBookkeeper' |\
+             grep -v 'EventTagWriter' > ${joblog}.small
+	joblog=${joblog}.small
+	if [ -r $reflog ]
+	    then
+#	    echo " post_check_es.sh> Now comparing output with reference"
+	    diff -a -b -B  $joblog $reflog |\
+                # ignore diff annotations
+	        egrep -a -v '^---|^[[:digit:]]+[acd,][[:digit:]]+' |\
+                # ignore hex addresses
+		egrep -a -v ' 0x\w{4,}' |\
+                # ignore package names e.g. Package-00-00-00
+		egrep -a -v '\w+-[[:digit:]]{2}-[[:digit:]]{2}-[[:digit:]]{2}' |\
+		# ignore cpu usage printouts
+		egrep -a -v 'ChronoStatSvc +INFO Time' |\
+		egrep -a -v 'Time left.+ Seconds' |\
+		egrep -a -v 'Timeleft.+ sec' |\
+		egrep -a -v 'INFO Time User' |\
+                egrep -a -v 'OutputStreamSequencerSvc' |\
+		# ignore clid db file name
+		grep -a -v 'from CLIDDB file'  |\
+		# ignore slug machine printout
+		egrep -a -v ' Machine: .* System and Processor Info'  |\
+		egrep -a -v ' Jobname = .* Machine =' |\
+		# ignore slug pid printout
+		grep -a -v 'Atlas Detector Simulation, Reconstruction and Analysis Running on'  |\
+		egrep -a -v 'Program:  Slug-Dice-Arecon .+ pid +[[:digit:]]+'  |\
+		#ignore DllClassManager DEBUG messages
+		egrep -a -v 'DllClassManager     DEBUG' |\
+		# ignore slug Library printout
+		egrep -a -v 'Library of +[[:digit:]]+ at +[[:digit:]]+'  |\
+		egrep -a -v 'Library compiled on +[[:digit:]]'  |\
+		# ignore ClassIDSvc "in memory db" printouts
+		egrep -a -v 'CLID: .* - type name:' |\
+		# ignore ClassIDSvc "already set" printouts
+		egrep -a -v 'ClassIDSvc .* setTypeNameForID: .* already set for' |\
+		# ignore ClassIDSvc finalize output
+		egrep -a -v 'ClassIDSvc * DEBUG finalize: wrote .*'   |\
+		# ignore rcs version comments
+		egrep -a -v 'Id: .+ Exp \$'  |\
+		# ignore listings
+		egrep -a -v 'athena.*listing'  |\
+		# ignore ptr values for LArCell
+		egrep -a -v 'Found elem'  |\
+                # ignore Dict issues
+                egrep -a -v 'Dict.so' |\
+		# ignore file mgr
+		egrep -a -v 'FileMgr'  |\
+		# ignore file names 
+		egrep -a -v 'Reading file'  |\
+		# ignore root collect key 
+		egrep -a -v 'NewEventCollection.root, recovered' |\
+                # ignore new file catalog messages
+                egrep -a -v 'registerPFN'
+
+	    diffStatus=$?
+	    if [ $diffStatus -ne 1 ] 
+		then
+		echo " post_check_es.sh> ERROR: $joblog and $reflog differ "
+		exit 1
+	    else
+                true
+		#echo " post_check_es.sh> OK: $joblog and $reflog identical "
+	    fi
+	else
+	    tail $joblog
+	    echo " post_check_es.sh> WARNING: reference output $reflog not available "
+	    echo  " post_check_es.sh> Please check ${PWD}/$joblog"
+            exit 1
+	fi
+    else
+	tail $joblog
+	echo  " post_check_es.sh> ERROR: Athena exited abnormally! Exit code: $status "
+	echo  " post_check_es.sh> Please check ${PWD}/$joblog"
+    fi
+fi
+
+# Check output for ERROR/FATAL
+joblog=${test}.log
+#echo 
+
+exit $status
+
diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/python/OutputStreamAthenaPool.py b/Database/AthenaPOOL/OutputStreamAthenaPool/python/OutputStreamAthenaPool.py
index fdbc634abff5ae5afde629511fc868d5c6d705c8..47db4fae9ea8995ec65f316db87348a9b80f0ac4 100644
--- a/Database/AthenaPOOL/OutputStreamAthenaPool/python/OutputStreamAthenaPool.py
+++ b/Database/AthenaPOOL/OutputStreamAthenaPool/python/OutputStreamAthenaPool.py
@@ -14,7 +14,7 @@ from AthenaServices.AthenaServicesConf import AthenaOutputStream
 from AthenaServices.AthenaServicesConf import AthenaOutputStreamTool
 
 def createOutputStream( streamName, fileName = "", asAlg = False, noTag = False,
-                        eventInfoKey = "EventInfo" ):
+                        eventInfoKey = "EventInfo", decisionFilter="" ):
    # define athena output stream
    writingTool = AthenaOutputStreamTool( streamName + "Tool" )
    outputStream = AthenaOutputStream(
@@ -41,7 +41,7 @@ def createOutputStream( streamName, fileName = "", asAlg = False, noTag = False,
          # build eventinfo attribute list
          from .OutputStreamAthenaPoolConf import EventInfoAttListTool, EventInfoTagBuilder
          svcMgr.ToolSvc += EventInfoAttListTool()
-         EventInfoTagBuilder   = EventInfoTagBuilder(AttributeList=key, EventInfoKey=eventInfoKey)
+         EventInfoTagBuilder   = EventInfoTagBuilder(AttributeList=key, EventInfoKey=eventInfoKey, FilterString=decisionFilter)
          topSequence += EventInfoTagBuilder
 
    # decide where to put outputstream in sequencing
@@ -91,3 +91,4 @@ def createOutputConditionStream( streamName, fileName = "" ):
 ## backward compat
 AthenaPoolOutputStream          = createOutputStream
 AthenaPoolOutputConditionStream = createOutputConditionStream
+
diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx
index 52c0b166f1ea23ed69cbe17ea69280b90238f2e9..102b71a79b85a5786e71d4df9e4dffda2f986bdc 100755
--- a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx
+++ b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoAttListTool.cxx
@@ -30,7 +30,7 @@ Purpose : create a EventInfoAttList - The Tag information associated to the even
 /** the constructor */
 EventInfoAttListTool::EventInfoAttListTool (const std::string& type, const
 					std::string& name, const IInterface* parent) : 
-  AthAlgTool( type, name, parent ) 
+  AthAlgTool( type, name, parent )
 {
   declareInterface<EventInfoAttListTool>( this );
 }
diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.cxx b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.cxx
index 4478e948f71989927a3d68ac60d652b95cfc2594..563904bd63fbce63edd47db880769e1bb98fb436 100755
--- a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.cxx
+++ b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.cxx
@@ -11,7 +11,10 @@ EventInfoTagBuilder::EventInfoTagBuilder( const std::string& name, ISvcLocator*
   : AthAlgorithm(name, pSvcLocator),
     m_tool("EventInfoAttListTool/EventInfoAttListTool",this) {
   declareProperty("EventInfoKey", m_evtKey = "EventInfo");
+  declareProperty("InputList", m_inputAttList = "Input");
   declareProperty("AttributeList", m_attributeListName);
+  declareProperty("PropagateInput", m_propInput = true);
+  declareProperty("FilterString", m_filter = "");
 }
 
 EventInfoTagBuilder::~EventInfoTagBuilder() 
@@ -24,6 +27,7 @@ StatusCode EventInfoTagBuilder::initialize() {
 
   ATH_CHECK( m_evtKey.initialize() );
   ATH_CHECK( m_attributeListName.initialize() );
+  ATH_CHECK( m_inputAttList.initialize() );
 
   return StatusCode::SUCCESS;
 }
@@ -32,6 +36,7 @@ StatusCode EventInfoTagBuilder::initialize() {
 StatusCode EventInfoTagBuilder::execute() {
   ATH_MSG_DEBUG( "Executing " << name() );
 
+
   SG::ReadHandle<xAOD::EventInfo> h_evt(m_evtKey);
 
   /** create a EventInfo Tag and ask the tool to fill it */ 
@@ -39,6 +44,30 @@ StatusCode EventInfoTagBuilder::execute() {
     auto attribList = std::make_unique<AthenaAttributeList>
       ( m_tool->getAttributeList( *h_evt ) );
 
+    // Check whether to propagate
+    if (m_propInput) {
+      SG::ReadHandle<AthenaAttributeList> h_att(m_inputAttList);
+      // Check if there is an input to propagate
+      if (h_att.isValid()) {
+        for (auto it = h_att->specification().begin();
+                  it!= h_att->specification().end(); ++it) {
+          // Only propagate bool properties
+          if (it->typeName()=="bool"&&!attribList->exists(it->name())) {
+            // Check if there is filtering on the name
+            if (m_filter != "") {
+              if (it->name().find(m_filter)!=std::string::npos) {
+                // Add those bools to the output attribute list
+                (*attribList).extend(it->name(),it->type());
+                (*attribList)[it->name()].data<bool>() = (*h_att)[it->name()].data<bool>();
+              }
+            }
+          } // take only bools
+        }   // loop
+      } else {     // valid input
+        ATH_MSG_INFO("No input attribute list");
+      }
+    }       // propagate
+
     /** record attribute list to SG */
     SG::WriteHandle<AthenaAttributeList> wh(m_attributeListName);
     ATH_CHECK( wh.record(std::move(attribList)) );
diff --git a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.h b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.h
index 8fb711f460ac84987b60f135bc852b17541518be..5e34bf6bf95dd68c7ec0211560b01e75d529098b 100755
--- a/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.h
+++ b/Database/AthenaPOOL/OutputStreamAthenaPool/src/EventInfoTagBuilder.h
@@ -54,7 +54,10 @@ private:
   ToolHandle<EventInfoAttListTool> m_tool;
 
   SG::ReadHandleKey<xAOD::EventInfo> m_evtKey;
+  SG::ReadHandleKey<AthenaAttributeList> m_inputAttList;
   SG::WriteHandleKey<AthenaAttributeList> m_attributeListName;
+  bool m_propInput;
+  std::string m_filter;
 
 };