One of These Suspects Committed the Murder of My Code
Sadly, I am not sure *which* one of the suspects in the code was doing the dirty deed. It is possible that the problem was the result of a little conspiracy of errors.
However, I have fixed enough different small problems that the bug has vanished. This is encouraging.
Testing. Testing is my friend.