Bug-Reported-by:	Clark J. Wang <dearvoid@gmail.com>
Bug-Reference-ID:	<AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com>
Bug-Reference-URL:	http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html

diff -Nura readline-6.2/callback.c readline-6.2-pl1/callback.c
--- readline-6.2/callback.c	2010-06-06 13:18:58.000000000 -0300
+++ readline-6.2-pl1/callback.c	2011-04-19 14:20:00.269829168 -0300
@@ -148,6 +148,9 @@
 	  eof = _rl_vi_domove_callback (_rl_vimvcxt);
 	  /* Should handle everything, including cleanup, numeric arguments,
 	     and turning off RL_STATE_VIMOTION */
+	  if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
+	   _rl_internal_char_cleanup ();
+
 	  return;
 	}
 #endif
diff -Nura readline-6.2/vi_mode.c readline-6.2-pl1/vi_mode.c
--- readline-6.2/vi_mode.c	2010-11-20 21:51:39.000000000 -0300
+++ readline-6.2-pl1/vi_mode.c	2011-04-19 14:19:24.510586785 -0300
@@ -1114,7 +1114,7 @@
       rl_beg_of_line (1, c);
       _rl_vi_last_motion = c;
       RL_UNSETSTATE (RL_STATE_VIMOTION);
-      return (0);
+      return (vidomove_dispatch (m));
     }
 #if defined (READLINE_CALLBACKS)
   /* XXX - these need to handle rl_universal_argument bindings */
