This morning, I whipped up a makefile (a file that allows automatically building software from sources with one command). I wanted to test it. I blew away all of the intermediate object code, and the final test program, then typed "make". I got an error message that said it didn't know how to make the source file.
A bit of head-scratching later, I came to a horrible realization: instead of typing rm *.o, I'd typed rm *.c. ARGH!!!!
It was only about 600 lines of code, but it was nicely commented and debugged. It'll take me a few more evenings to rewrite it all. Damn, what a disappointment.