diff --git a/ansi-tests/sxhash.lsp b/ansi-tests/sxhash.lsp
index 146304d2ed00c163bdd7e3ef9fcb744c5d1b87d5..0c27be20f493667e0d1bbfb0d4b033c38895ac18 100644
--- a/ansi-tests/sxhash.lsp
+++ b/ansi-tests/sxhash.lsp
@@ -110,13 +110,80 @@
 	 (eqlt sx1 sx2)))
   t)
 
-(deftest sxhash.14
-  (let ((sx1 (sxhash :foo))
-	(sx2 (sxhash '#:foo)))
-    (and (typep sx1 '(and unsigned-byte fixnum))
-	 (eqlt sx1 sx2)))
+;; (deftest sxhash.14
+;;  (let ((sx1 (sxhash :foo))
+;;	(sx2 (sxhash '#:foo)))
+;;    (and (typep sx1 '(and unsigned-byte fixnum))
+;;	 (eqlt sx1 sx2)))
+;;  t)
+
+(deftest sxhash.15
+  (let* ((package-name
+	  (loop for i from 0
+		for name = (format nil "PACKAGE-~A" i)
+		for package = (find-package name)
+		unless package do (return name)))
+	 (sx1
+	  (let* ((package (make-package package-name nil nil))
+		 (symbol (intern "FOO" package)))
+	    (prog1
+	       (sxhash symbol)
+	      (delete-package package))))
+	 (sx2
+	  (let* ((package (make-package package-name nil nil))
+		 (symbol (intern "FOO" package)))
+	    (prog1
+	       (sxhash symbol)
+	      (delete-package package)))))
+    (assert (typep sx1 '(and unsigned-byte fixnum)))
+    (if (= sx1 sx2) :good (list sx1 sx2)))
+  :good)
+
+(deftest sxhash.16
+  (let ((c1 (list 'a))
+	(c2 (list 'a)))
+    (setf (cdr c1) c1)
+    (setf (cdr c2) c2)
+    (let ((sx1 (sxhash c1))
+	  (sx2 (sxhash c2)))
+      (or (eqlt sx1 sx2) (list sx1 sx2))))
   t)
 
+;;; Since similarity of numbers is 'same type and same mathematical value',
+;;; and since sxhash must produce the same value for similar numeric arguments,
+;;; (sxhash 0.0) and (sxhash -0.0) must be eql for all float types.
+
+(deftest sxhash.17
+  (loop for c1 in '(0.0s0 0.0f0 0.0d0 0.0l0)
+	for c2 in '(-0.0s0 -0.0f0 -0.0d0 -0.0l0)
+	for sx1 = (sxhash c1)
+	for sx2 = (sxhash c2)
+	unless (eql sx1 sx2)
+	collect (list c1 c2 sx1 sx2))
+  nil)
+
+(deftest sxhash.18
+  (loop for r1 in '(0.0s0 0.0f0 0.0d0 0.0l0)
+	for c1 = (complex r1)
+	for r2 in '(-0.0s0 -0.0f0 -0.0d0 -0.0l0)
+	for c2 = (complex r2)
+	for sx1 = (sxhash c1)
+	for sx2 = (sxhash c2)
+	unless (eql sx1 sx2)
+	collect (list c1 c2 sx1 sx2))
+  nil)
+
+(deftest sxhash.19
+  (loop for r1 in '(0.0s0 0.0f0 0.0d0 0.0l0)
+	for c1 = (complex 0 r1)
+	for r2 in '(-0.0s0 -0.0f0 -0.0d0 -0.0l0)
+	for c2 = (complex 0 r2)
+	for sx1 = (sxhash c1)
+	for sx2 = (sxhash c2)
+	unless (eql sx1 sx2)
+	collect (list c1 c2 sx1 sx2))
+  nil)
+
 ;;; Error cases
 
 (deftest sxhash.error.1