diff --git a/code/hash-new.lisp b/code/hash-new.lisp
index 32294717cfa0a0fbdfe8995bfc36efe134d96a86..e160c50fa83d2ac75b51677a23d96edb3aeb52f1 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.11 2000/01/15 15:10:33 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash-new.lisp,v 1.12 2000/01/16 20:10:39 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1050,8 +1050,11 @@
 		    (internal-equalp-hash (realpart s-expr) 0)
 		    (logxor (internal-equalp-hash (realpart s-expr) 0)
 			    (internal-equalp-hash (realpart s-expr) 0))))))
-    (simple-vector (vector-equalp-hash (truly-the simple-vector s-expr) depth))
-    (array (array-equalp-hash s-expr depth))
+    (array
+     (typecase s-expr
+       (simple-vector (vector-equalp-hash (truly-the simple-vector s-expr) depth))
+       (vector (vector-equalp-hash s-expr depth))
+       (t (array-equalp-hash s-expr depth))))
     ;; Everything else.
     (t 42)))
 
diff --git a/code/hash.lisp b/code/hash.lisp
index 566af7343ab217e091ffbfafe657d0de7c2b14d4..6622a643773201579cf2582cf30e3796df83b255 100644
--- a/code/hash.lisp
+++ b/code/hash.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.lisp,v 1.35 2000/01/15 15:10:33 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/hash.lisp,v 1.36 2000/01/16 20:10:39 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1019,8 +1019,11 @@
 		    (internal-equalp-hash (realpart s-expr) 0)
 		    (logxor (internal-equalp-hash (realpart s-expr) 0)
 			    (internal-equalp-hash (realpart s-expr) 0))))))
-    (simple-vector (vector-equalp-hash (truly-the simple-vector s-expr) depth))
-    (array (array-equalp-hash s-expr depth))
+    (array
+     (typecase s-expr
+       (simple-vector (vector-equalp-hash (truly-the simple-vector s-expr) depth))
+       (vector (vector-equalp-hash s-expr depth))
+       (t (array-equalp-hash s-expr depth))))
     ;; Everything else.
     (t 42)))