diff -ruN readline-6.0/readline.c readline-6.0.1/readline.c --- readline-6.0/readline.c 2009-01-26 10:33:34.000000000 +0800 +++ readline-6.0.1/readline.c 2009-08-04 17:10:30.000000000 +0800 @@ -686,7 +686,8 @@ r = cxt->childval; /* For now */ - r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ)); + if(r != -3 ) /* unless there's not going to be any other matches */ + r = _rl_subseq_result (r, cxt->oldmap, cxt->okey, (cxt->flags & KSEQ_SUBSEQ)); RL_CHECK_SIGNALS (); if (r == 0) /* success! */