Thanks again. Just tried it out and it works perfect. ContainerFeedbackMessageFilter for my form-comp-panel's feedback panel allowed it to show it's children messages.
Using a visitor in my invalid-css-class-behavior allowed me to enable the behavior when one of the children has an error. This is how the isEnabled method in the invalid-css-class-behavior looks like now: @Override public boolean isEnabled(Component component) { if (component instanceof MarkupContainer) { if (component.hasErrorMessage()) return true; Object obj = ((MarkupContainer) component).visitChildren(new IVisitor<Component>() { public Object component(Component component) { if (component.hasErrorMessage()) return true; else return Component.IVisitor.CONTINUE_TRAVERSAL; } }); return super.isEnabled(component) && (obj != null) && (Boolean.TRUE.equals(obj)); } else return super.isEnabled(component) && component.hasErrorMessage(); } kind of a mess but it works great :)