make sure failing ChangeListeners do not kill thread
better error message