@Override
public void broadcast(FacesEvent event) throws AbortProcessingException {
super.broadcast(event);
if (event instanceof TreeSelectionChangeEvent) {
TreeSelectionChangeEvent selectionEvent = (TreeSelectionChangeEvent) event;
final Collection<Object> newSelection = selectionEvent.getNewSelection();
Collection<Object> selectionCollection = getSelection();
Iterables.removeIf(selectionCollection, new Predicate<Object>() {
public boolean apply(Object input) {