Since this thread is already full of armchair airplane engineers opinions about the root cause, I'll add mine too: Never ever write new software under the condition that it must work EXACTLY as old software. It can't be done and you'll always miss something.
Case in point: Wine. They've been at it for years and the emulation layer is still far from perfect. It works 99% of the time which is good enough for games, but I wager not for airplane control systems.
Case in point: Wine. They've been at it for years and the emulation layer is still far from perfect. It works 99% of the time which is good enough for games, but I wager not for airplane control systems.