I do have a JFrame that accesses them during its Paint() method though - does the window run in it's own thread and that's why it's causing them?
I've not done much work with multithreading, bnut from what I've read, would adding syncronized(whateverArrayListImTryingToAcccess) blocks solve this?
Also what operations would need these blocks, everything or just .add and .remove?