Hello,

I've found bug which happens when I have multiple listeners for the same event. There are reproduce steps to simulate it.

Code:
// Initializing our test callbacks
var test = { fn: function() { console.log('hi'); }, scope: {}, opts: {} };
var test_before = { fn: function() { console.log('before hi'); }, scope: {}, opts: {} };


// Binding first callback
Ext.getBody().on('click', test.fn, test.scope, test.opts);






//
// clicking on the body -> 'hi'
//




// Binding 'before' callback
Ext.getBody().on('click', test_before.fn, test_before.scope, test_before.opts, 'before');




//
// clicking on the body -> 'before hi', 'hi'
//






// Unbinding 'before' callback
Ext.getBody().un('click', test_before.fn, test_before.scope, test_before.opts, 'before');




//
// clicking on the body -> nothing happens !!!
//





// Binding 'before' callback
Ext.getBody().on('click', test_before.fn, test_before.scope, test_before.opts, 'before');




//
// clicking on the body -> 'before hi', 'hi'
//
Using debugger I found the problem inside Ext.event.publisher.Dom.unsubscribe function. It's don't take into attention event ordering parameters, so when 'before' event is detached it's also affects on regular events.