         events: newEvents
         allEventsCount: data.all_events_count
         users: newUsers
-        since: if !lastGameEvent? || lastGameEvent.game.data.end_time then lastEvent.id else lastGameEvent.id - 1
-        lastGameId: if lastGameEvent? then lastGameEvent.id else 0
-        disbanded: lastEvent.event_type == 'match-disbanded'
+        since: @minNextEventId
+        lastGameId: _.findLast(newEvents, (e) -> e.game?)?.id ? 0
 
     .always =>
-      if !@state.disbanded
-        setTimeout @loadHistory, @refreshTimeout
+      @timeout = setTimeout @loadHistory, @refreshTimeout
+
+  minNextEventId: =>
+    lastGame = _.findLast @state.events, (o) -> o.game?
+
+    if lastGame? && !lastGame.game.data.end_time?
+      lastGame.id - 1
+    else
+      _.last(@state.events)?.id ? 0
 
   lookupUser: (id) =>
     @state.users[id]


      @setState initialLoaded: true

  loadHistory: =>
    $.ajax laroute.route('matches.history', matches: @props.match.id, full: @props.full),
      method: 'GET'
      dataType: 'JSON'

      since: 0
      lastGameId: 0
      teamType: ''
      initialLoaded: false

    @loadHistory @state.since
