Given that it only happens on some starts of the game and for some DLL versions, there are likely some bad pointers involved. All kind of changes (especially changing the DLL code and recompiling) can influence where in memory things are placed and that can mean the difference between hitting important things with the bad pointers or not.However, there still is a curious problem:
Why did this only start happening on a SVN update from late September when there were no changes to the fpks?