function detachListener(iListener $listener)
    {
        $this->_listenerQueue()->del($listener);

        if (in_array($listener, $this->_c_listeners)) {
            foreach ($this->_c_listeners as $k => $l) {
                if ($l === $listener) {
                    unset($this->_c_listeners[$k]);
                    break;
                }
            }
        }

        return $this;
    }