I think I've found the problem, but I haven't had time to test it yet. It seems there was some code that I added for multithreading to avoid some hitches, but the linux version had a pointer instead of a copy of the data. I guess the different distros had libraries that handled multithreading differently, so it only had the bug on some.