     @container.activateNextPane() if @isActive()
     @emitter.emit 'did-destroy'
     @emitter.dispose()
-    @subscriptions.dispose()
-    item.destroy?() for item in @items.slice()
+    for item in @items.slice()
+      @itemSubscriptions.get(item)?.dispose()
+      @itemSubscriptions.delete(item)
+      item.destroy?()
     @container?.didDestroyPane(pane: this)
 
   ###

{find, compact, extend, last} = require 'underscore-plus'
{Model} = require 'theorist'
{CompositeDisposable, Emitter} = require 'event-kit'
Serializable = require 'serializable'
Grim = require 'grim'
PaneAxis = require './pane-axis'

    return if item in @items

    if typeof item.onDidDestroy is 'function'
      @itemSubscriptions.set item, item.onDidDestroy => @removeItem(item, true)
    else if typeof item.on is 'function'
      @subscribe item, 'destroyed', => @removeItem(item, true)

