diff --git a/xgm.py b/xgm.py
index 4602cc1b178abf9c9071b4aebbc756db42aef1dc..19977ef17f74685b2aba237f6e1fc7c57261777b 100644
--- a/xgm.py
+++ b/xgm.py
@@ -836,14 +836,14 @@ def checkTimApdWindow(data, mcp=1, use_apd=True, intstart=None, intstop=None):
     apdChannels={1:3, 2:2, 3:1, 4:0}
     npulses_max = data['npulses_sase3'].max().values
     tid = data['npulses_sase3'].where(data['npulses_sase3'] == npulses_max,
-                                      drop=True)[0].trainId.values
+                                      drop=True).trainId.values
     if 'MCP{}raw'.format(mcp) not in data:
-        tid, data_from_train = data.attrs['run'].train_from_id(tid)
+        ntid, data_from_train = data.attrs['run'].train_from_id(tid[0])
         trace = data_from_train['SCS_UTC1_ADQ/ADC/1:network']['digitizers.channel_1_'
                                 +'{}.raw.samples'.format(mcpToChannel[mcp])]
         print('no raw data for MCP{}. Loading trace from MCP{}'.format(mcp, mcp))
     else:
-        trace = data['MCP{}raw'.format(mcp)].sel(trainId=tid).T
+        trace = data['MCP{}raw'.format(mcp)].sel({'trainId':tid}).mean(dim='trainId')
     if use_apd:
         pulseStart = data.attrs['run'].get_array(
             'SCS_UTC1_ADQ/ADC/1',