Sorry, haven't seen this thread in a while. (I don't get alerts for some reason.) I'm delighted that my ranting about debouncing and key-scan priority has seemingly made some significant difference. In a proper design, keyboard debounccing (see that?) wouldn't be the responsibility of the host processor, but rather be the sole responsibility of a microcontroller in charge of the keyboard. Just look into the original Intel 8048 microcontroller in Every IBM PC keyboard in the 80's. Oh, and a similar dedicated microcontroller in Every Other Computer Keyboard Since! There's a reason for this