diff --git a/Phys/Tesla/python/Tesla/Configuration.py b/Phys/Tesla/python/Tesla/Configuration.py
index aab72c52516424522018004cde10f95f2b0cf2be..59c8257823fcfaca0707e0ff90a0334b272c5beb 100644
--- a/Phys/Tesla/python/Tesla/Configuration.py
+++ b/Phys/Tesla/python/Tesla/Configuration.py
@@ -900,6 +900,15 @@ class Tesla(LHCbConfigurableUser):
         if not streams:
             streams = {'': {'lines': trigger_lines}}
 
+        from DAQSys.Decoders import DecoderDB
+        hlt2dr_decoder = DecoderDB['HltDecReportsDecoder/Hlt2DecReportsDecoder'].setup()
+        # Cannot do anything if no Turbo(Calib) line fired (as then the DstData
+        # bank will be empty), so don't run subsequent algorithms
+        turbo_filter = HltDecReportsFilter('Hlt2_TeslaTurboFilter',
+                                           Code="HLT_TURBOPASS_RE('.*')")
+        turbo_filter_seq = GaudiSequencer('TeslaTurboFilter')
+        turbo_filter_seq.Members = [hlt2dr_decoder, turbo_filter]
+
         decoders_seq = GaudiSequencer('TeslaDecoders')
         if online:
             decoder_names = [
@@ -911,7 +920,6 @@ class Tesla(LHCbConfigurableUser):
             if vertex_report_location == 'Hlt1':
                 decoder_names.insert(0, 'HltVertexReportsDecoder/Hlt1VertexReportsDecoder')
             for name in decoder_names:
-                from DAQSys.Decoders import DecoderDB
                 decoder = DecoderDB[name].setup()
                 decoders_seq.Members.append(decoder)
 
@@ -984,8 +992,9 @@ class Tesla(LHCbConfigurableUser):
             ),
             IgnoreFilterPassed=True
         )
+        turbo_filter_seq.Members.append(streaming_seq)
 
-        return streaming_seq
+        return turbo_filter_seq
 
     def _configureOutputTurboSPStream(self, name, lines, packing, online,
                                       raw_format_output):