The purpose of using Collections.synchronizedList(...) is to save you from having to wrap add/remove calls in a synchronized block.  @rhusar is right - you still need to synchronize on iteration.