Создал объект arst, добавил ему слушателя:

Код AS3:
arst.addEventListener(MyEvent.BOOM, boom)
Объект распространяет событие:

Код AS3:
dispatchEvent(new MyEvent(MyEvent.BOOM))
Родитель ловит событие:

Код AS3:
private function boom(e:MyEvent): void {
var arst:Object = e.target;
arst.removeEventListener(MyEvent.BOOM, boom)
trace('BOOOOOOOOOOOOOOOOOOOOOM!!!!!!!')
};
Проблема в том, что слушатель почему-то не удаляется, хотя много раз использовал такую схему. В чём беда в этот раз, никак не пойму. Добавил проверку hasEventListener, чтобы проверить, есть ли слушатель, перед его удалением:

Код AS3:
private function boom(e:MyEvent): void {
var arst:Object = e.target;
trace(arst.hasEventListener('BOOM'))
arst.removeEventListener(MyEvent.BOOM, boom)
trace('BOOOOOOOOOOOOOOOOOOOOOM!!!!!!!')
};
trace(arst.hasEventListener('BOOM')) выводит "true", т.е. слушатель есть. А удаляться, гад, не хочет, выбрасывает

Код AS3:
[Fault] exception, information=TypeError: Error #2007: Параметр listener не должен быть равен нулю.
Подскажите, пожалуйста, в чём дело?