diff --git a/code/unidata.lisp b/code/unidata.lisp
index 6516f9572ed2a3241c47b9358945dd60a3fdf6c9..2aa0a876299a620154616a1c16eea96f23dd6b67 100644
--- a/code/unidata.lisp
+++ b/code/unidata.lisp
@@ -4,7 +4,7 @@
 ;;; This code was written by Paul Foley and has been placed in the public
 ;;; domain.
 ;;; 
-(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/unidata.lisp,v 1.20 2010/09/20 00:59:22 rtoy Exp $")
+(ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/unidata.lisp,v 1.21 2010/09/20 01:17:14 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -18,7 +18,7 @@
 
 (defconstant +unidata-path+ #p"ext-formats:unidata.bin")
 
-(defvar *unidata-version* "$Revision: 1.20 $")
+(defvar *unidata-version* "$Revision: 1.21 $")
 
 (defstruct unidata
   range
@@ -1291,7 +1291,12 @@
 		   (if suffixes
 		       (loop for n in suffixes
 			  do (push (concatenate 'string full-prefix n) names))
-		       (push full-prefix names))))))
+		       ;; No suffixes.  So either the prefix is the
+		       ;; only possible completion or it's not valid.
+		       ;; Figure that out.  If it's valid, add it to
+		       ;; names.
+		       (when (search-dictionary (string-upcase prefix-tail) dictionary)
+			 (push prefix-match names)))))))
 	;; Match prefix for Hangul syllables or CJK unified ideographs.
 	(cond ((char= (char prefix-match 0) #\H)
 	       ;; Add "Hangul_Syllable_" as possible completion for
@@ -1312,7 +1317,8 @@
 		 (unless *cjk-unified-ideograph-dictionary*
 		   (build-cjk-unified-ideograph-dictionary))
 		 (han-or-cjk-completion prefix-match "Cjk_Unified_Ideograph-"
-					*cjk-unified-ideograph-dictionary*)))))
+					*cjk-unified-ideograph-dictionary*)
+		 ))))
       (setf names (mapcar #'string-capitalize names))
       ;;(format t "Final names = ~S~%" names)
       names)))