diff --git a/code/hash-new.lisp b/code/hash-new.lisp
index f68c9ceb49b7f46c8bbb0ab3e91255bb21e58d0b..739f4e5569ea5ca962dc906a2b99befa50cc33c9 100644
--- a/code/hash-new.lisp
+++ b/code/hash-new.lisp
@@ -5,7 +5,7 @@
 ;;; Carnegie Mellon University, and has been placed in the public domain.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.47 2008/04/29 13:07:47 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.48 2009/03/27 16:03:15 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -980,7 +980,7 @@
     ;; The pointers and immediate types.
     (cons (sxhash-list s-expr depth))
     (fixnum (ldb sxhash-bits-byte s-expr))
-    (character (char-code (char-upcase s-expr)))
+    (character (char-code s-expr))
     (pathname
      ;; Pathnames are EQUAL if all the components are EQUAL, so we
      ;; hash all of the components of a pathname together.
diff --git a/general-info/release-20a.txt b/general-info/release-20a.txt
index df760c8f1c2fcc30afbf7896608174c41fc64e1a..dad2fc75f6258dc2596c7d987938d26a620b0d02 100644
--- a/general-info/release-20a.txt
+++ b/general-info/release-20a.txt
@@ -28,6 +28,10 @@ New in this release:
       trying to simplify the union of a large number of disjoint
       numeric types.  Previously, we handled the case of integer
       types.  Extend this to handle floats as well.
+    - SXHASH was computing the same hash code for upper and lower case
+      characters by upcasing the character.  This isn't necessary
+      since the characters are not EQUAL, so make SXHASH return
+      different values for upper and lower case letter.
 
   * Trac Tickets:
     #31: pathname bug with :case :common