Index: /trunk/ccl/hemlock/src/command.lisp
===================================================================
--- /trunk/ccl/hemlock/src/command.lisp	(revision 667)
+++ /trunk/ccl/hemlock/src/command.lisp	(revision 668)
@@ -64,10 +64,12 @@
   With prefix argument, insert the character that many times."
   "Reads a key-event from *editor-input* and inserts it at the point."
-  (let ((char (hemlock-ext:key-event-char (get-key-event *editor-input* t)))
-	(point (current-point)))
-    (unless char (editor-error "Can't insert that character."))
-    (if (and p (> p 1))
-	(insert-string point (make-string p :initial-element char))
-	(insert-character point char))))
+  (setf (hi::command-interpreter-info-function hi::*current-command-info*)
+	#'(lambda (key-event)
+	    (let* ((char (hemlock-ext:key-event-char key-event))
+		   (point (current-point)))
+	      (unless char (editor-error "Can't insert that character."))
+	      (if (and p (> p 1))
+		(insert-string point (make-string p :initial-element char))
+		(insert-character point char))))))
 
 (defcommand "Forward Character" (p)
