Having looked at https://bugs.kde.org/show_bug.cgi?id=385107 for a while, it seems to me like compilers do really strange things™ when having multiple nontrivially constructed global static variables in a threaded environment. Probably the best solution is to simply remove all the global statics, and use free functions instead. While we're at it, I turned the Helper class into a namespace, it only has static member functions anyways.
All this code needs lots of refactoring and cleanup other than this change, but we have to start somewhere ...