*** ../bash-4.2-patched/lib/readline/input.c 2010-05-30 18:33:01.000000000 -0400 --- lib/readline/input.c 2012-06-25 21:08:42.000000000 -0400 *************** *** 410,414 **** rl_read_key () { ! int c; rl_key_sequence_length++; --- 412,416 ---- rl_read_key () { ! int c, r; rl_key_sequence_length++; *************** *** 430,441 **** while (rl_event_hook) { ! if (rl_gather_tyi () < 0) /* XXX - EIO */ { rl_done = 1; return ('\n'); } RL_CHECK_SIGNALS (); - if (rl_get_char (&c) != 0) - break; if (rl_done) /* XXX - experimental */ return ('\n'); --- 432,447 ---- while (rl_event_hook) { ! if (rl_get_char (&c) != 0) ! break; ! ! if ((r = rl_gather_tyi ()) < 0) /* XXX - EIO */ { rl_done = 1; return ('\n'); } + else if (r == 1) /* read something */ + continue; + RL_CHECK_SIGNALS (); if (rl_done) /* XXX - experimental */ return ('\n');