** GRUMBLE GRUMBLE GRUMBLE **
I spent hours rewriting and debugging the routines that map a sequence
set to an array, twiddle the specified array members, then convert back to
a sequence set.
Around 2:00am I finally figured out that the logic was fine ... the
problem was that I had specified "the currently selected room" instead of
"the room specified by the caller" when loading up message numbers.
There's four hours of my life I'll never have back. I guess the code is
a little bit cleaner now, but if I had spotted the problem immediately I
could have made a one line change and called it a day. :(