 
   preserveCursorPositionOnBufferReload: ->
     cursorPosition = null
-    @subscribe @buffer.onWillReload =>
+    @disposables.add @buffer.onWillReload =>
       cursorPosition = @getCursorBufferPosition()
-    @subscribe @buffer.onDidReload =>
+    @disposables.add @buffer.onDidReload =>
       @setCursorBufferPosition(cursorPosition) if cursorPosition
       cursorPosition = null
 

    willInsert = true
    cancel = -> willInsert = false
    willInsertEvent = {cancel, text}
    @emit('will-insert-text', willInsertEvent)
    @emitter.emit 'will-insert-text', willInsertEvent

    if willInsert

      @mutateSelectedText (selection) =>
        range = selection.insertText(text, options)
        didInsertEvent = {text, range}
        @emit('did-insert-text', didInsertEvent) if includeDeprecatedAPIs
        @emitter.emit 'did-insert-text', didInsertEvent
        range
    else
