Ganesh, I fully agree that a comment is in order to explain the special
case. Can you add one? I am pretty much distracted with other stuff ATM.
I really want to get rid of these weirdnesses. I want to look at the
code and say "ah, that's how it works" and be able to move on instead of
"WTF is this doing and why is it so complicated?" (and then spend an
hour trying to simplify it until I realize why exactly it really has to
be that complicated; or else spend another two days to refactor things
until they actually /are/ simpler).