Index: abcl.asd
===================================================================
--- abcl.asd	(revision 12900)
+++ abcl.asd	(working copy)
@@ -46,7 +46,8 @@
                       (:file "math-tests")
                       (:file "misc-tests")
                       (:file "bugs" :depends-on ("file-system-tests"))
-                      (:file "pathname-tests")))))
+                      (:file "pathname-tests")
+		      (:file "repl-tests")))))
 
 (defmethod perform ((o test-op) (c (eql (find-system 'abcl-test-lisp))))
    "Invoke tests with (asdf:oos 'asdf:test-op :abcl-test-lisp)."
Index: src/org/armedbear/lisp/top-level.lisp
===================================================================
--- src/org/armedbear/lisp/top-level.lisp	(revision 12900)
+++ src/org/armedbear/lisp/top-level.lisp	(working copy)
@@ -348,8 +348,8 @@
       (setf string (subseq string 1)
             len (1- len)))
     (dolist (entry *command-table*)
-      (when (or (string= string (entry-abbreviation entry))
-                (string= string (entry-name entry)))
+      (when (or (string-equal string (entry-abbreviation entry))
+                (string-equal string (entry-name entry)))
         (return (entry-command entry))))))
 
 (defun process-cmd (form)
@@ -376,13 +376,17 @@
 
 (defun read-cmd (stream)
   (let ((c (peek-char-non-whitespace stream)))
-    (cond ((eql c *command-char*)
-           (read-line stream))
-          ((eql c #\newline)
-           (read-line stream)
-           *null-cmd*)
-          (t
-           (read stream nil)))))
+    (if (eql c #\Newline)
+	(progn
+	  (read-line stream)
+	  *null-cmd*)
+	(let ((input (read stream nil)))
+	  (if (not (keywordp input))
+	      input
+	      (let ((name (string-downcase (symbol-name input))))
+		(if (find-command name)
+		    (concatenate 'string ":" name)
+		    input)))))))
 
 (defun repl-read-form-fun (in out)
   (loop
Index: test/lisp/abcl/repl-tests.lisp
===================================================================
--- test/lisp/abcl/repl-tests.lisp	(revision 0)
+++ test/lisp/abcl/repl-tests.lisp	(revision 0)
@@ -0,0 +1,31 @@
+(in-package #:abcl.test.lisp)
+
+;; repl keyword
+(deftest repl.keyword.1
+    (with-input-from-string (input ":hello")
+      (top-level::repl input))
+  :hello)
+
+;; repl string
+(deftest repl.string.2
+    (with-input-from-string (input "\"help\"")
+      (top-level::repl input))
+  "help")
+
+;; repl command
+(deftest repl.command.3
+    (with-input-from-string (input ":help")
+      (top-level::repl input))
+  nil)
+
+;; repl case-insensitive-command
+(deftest repl.command.case-ignore.4
+    (with-input-from-string (input ":HELP")
+      (top-level::repl input))
+  nil)
+
+;; repl case-insensitive-keyword
+(deftest repl.keyword.case-ignore.5
+    (with-input-from-string (input ":HELLO")
+      (top-level::repl input))
+  :hello)
