Arrows keys sometimes ignored with Util.ReadLine

To reproduce, run the following script

var list1 = new List<string>() { "1", "2", "3" };
Util.ReadLine("Select Value", list1[0], list1);

Then press the down arrow key three times. The third keystroke correctly does nothing as they are no more items. However pressing the up arrow should change back to "2" but it doesn't do anything and you need to press it an extra time.

Similarly if you press up arrow when the first item is selected it takes two down arrows to move down.

Also, would it be possible to handle the following code better.

Util.ReadLine("Select Value", list1);

Even a compile-time error would be better than the current runtime error.