       @emitter.emit 'did-change-title', @getTitle()
       @emit "path-changed"
       @emitter.emit 'did-change-path', @getPath()
+    @subscribe @buffer.onDidDestroy => @destroy()
+
+    # TODO: remove these thwne we remove the deprecations. They are old events.
     @subscribe @buffer.onDidStopChanging => @emit "contents-modified"
     @subscribe @buffer.onDidConflict => @emit "contents-conflicted"
     @subscribe @buffer.onDidChangeModified => @emit "modified-status-changed"
-    @subscribe @buffer.onDidDestroy => @destroy()
+
     @preserveCursorPositionOnBufferReload()
 
   subscribeToDisplayBuffer: ->


    @languageMode = new LanguageMode(this)

    @subscribe @$scrollTop, (scrollTop) => @emit 'scroll-top-changed', scrollTop
    @subscribe @$scrollLeft, (scrollLeft) => @emit 'scroll-left-changed', scrollLeft

    @subscribe atom.config.observe 'editor.showInvisibles', callNow: false, (show) => @updateInvisibles()
    @subscribe atom.config.observe 'editor.invisibles', callNow: false, => @updateInvisibles()

      when 'screen-lines-changed'
        deprecate("Use Editor::onDidChangeScreenLines instead")

      when 'scroll-top-changed'
        deprecate("Use Editor::onDidChangeScrollTop instead")
      when 'scroll-left-changed'
        deprecate("Use Editor::onDidChangeScrollLeft instead")

    EmitterMixin::on.apply(this, arguments)

  # Retrieves the current {TextBuffer}.
