Open source software.
For some reason, I couldn't open my Gnucash data file after installing Kubuntu. A post to the gnucash-user mailing list produced suggestions from some helpful folks, but they didn't fix the problem.
An hour or so of digging into the sources (made possible in no small measure by the log messages in /tmp/gnucash.trace) and tweaking the XML validation code, and three years of data accessible once again. Phew.
I still don't know what the long term effects of the tweaking will be, but for the moment I'm happy that I am able to make changes to the file and save them successfully.
I also have to figure out for how long am I going to be running my own fork of Gnucash. I guess the best option would be to use the 'forked' Gnucash to open my current data file as an archive file, but use the plain vanilla Gnucash and create a new file for everyday use.