Ok I think I understand. Is it because the [] operator is overloaded and might cause a copy of the whole data, because one thread is reading it and another one is writing it? And then what happens is what Wysota said?

If this is true, the problem would vanish if I used a plain old array of structs instead of the QList, right?