 
   # Sends the final results, then EOF
   _onStreamDone: ->
-    @push(tokens: @tokenBin.getTokensByFrequency().slice(0, MaxNTokens))
+    @push(tokens: @tokenListBuilder.getTokensByFrequency().slice(0, MaxNTokens))
     @push(null)
 
     @_clearReadTimeout() # No more reads, please
 
   # Sends an error, then EOF
   _onStreamError: (err) ->
+    return if @destroyed # oboe creates an error when we abort it.
+
     if err.statusCode?
       @emit('error', new Error("Overview server responded: #{JSON.stringify(err)}"))
     else


    @_readTimeout = null # If set, the user called read() and we haven't called push() for it yet

    @nDocuments = 0
    @nDocumentsTotal = 1
    @tokenBin = new TokenBin([])

  _start: ->
    @stream = oboe


  # Handles a single document's text
  _onDocumentText: (text) ->
    @tokenListBuilder.addDocumentText(text)
    @nDocuments += 1

  _clearReadTimeout: ->
