Он же глобальный?
Я бы ещё как-нибудь выкрутился, если бы был доступ к текущему TrapViewer-у. Вызвал бы свой обработчик, и потом установил предыдущий. А так просто вслепую задавать свой обработчик чревато сбросом чьего-нибудь чужого обработчика. Да и для доступа к стандартным потребуется изменить интерфейс модулей, в которых они находятся.