The behaviour now conforms 100% to the behaviour tested using microsoft's
ControlSpy on Windows 2000. It seems the first for loop was
unnecessary--Windows does not appear to make these checks. Also, there was a
bug in the previous code causing the index to be reset to 0 no matter what (if
(index < 9 || index > 3) index = 0;). This was what was causing the problem.