BUG-509: Refactor listener walking