   destroy: ->
     return if @destroyed
     @destroyed = true
+    @editorSubcriptions?.dispose()
     @disposables.dispose()
     @editor.destroy()
     @activateProviderPane()

    @ignoreChangeOnEditor = false
    range

  bindToEditor: ->
    @editorSubcriptions?.dispose()
    @editorSubcriptions = new CompositeDisposable
    #

  # vim-mode-plus integration
  # -------------------------

    @disposables.add(@observeCursorPositionChange())

    @disposables.add atom.workspace.onDidStopChangingActivePaneItem (item) =>
      unless item is @editor
        @rowMarker?.destroy()

    if @provider.boundToEditor
      @bindToEditor(@provider.editor)
      @disposables.add @providerEditor.onDidDestroy(@destroy.bind(this))

    @constructor.register(this)
