From: Pavel Machek Here's incremental patch to add the comment and fix fn_dec_console, too. I hope it is applicable. --- /dev/null | 0 drivers/char/keyboard.c | 8 +++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff -puN drivers/char/keyboard.c~alt-arrow-console-switch-fix-2 drivers/char/keyboard.c --- 25/drivers/char/keyboard.c~alt-arrow-console-switch-fix-2 2004-01-09 11:23:36.000000000 -0800 +++ 25-akpm/drivers/char/keyboard.c 2004-01-09 11:23:36.000000000 -0800 @@ -494,8 +494,13 @@ static void fn_lastcons(struct vc_data * static void fn_dec_console(struct vc_data *vc, struct pt_regs *regs) { int i; + int cur = fg_console; + + /* Currently switching? Queue this next switch relative to that. */ + if (want_console != -1) + cur = want_console; - for (i = fg_console-1; i != fg_console; i--) { + for (i = cur-1; i != cur; i--) { if (i == -1) i = MAX_NR_CONSOLES-1; if (vc_cons_allocated(i)) @@ -509,6 +514,7 @@ static void fn_inc_console(struct vc_dat int i; int cur = fg_console; + /* Currently switching? Queue this next switch relative to that. */ if (want_console != -1) cur = want_console; diff -puN -L linux/drivers/char/keyboard.c /dev/null /dev/null _