diff --git a/code/array.lisp b/code/array.lisp
index 3602f91b80bc2b83284dca89b436e218692635fd..984eaf196eb0ef8acf806c5efeae21b868ac6b4b 100644
--- a/code/array.lisp
+++ b/code/array.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/array.lisp,v 1.29 1998/07/24 17:17:49 dtc Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/array.lisp,v 1.30 2000/05/12 20:54:36 dtc Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -583,7 +583,10 @@
   "Returns values of :displaced-to and :displaced-index-offset options to
    make-array, or the defaults nil and 0 if not a displaced array."
   (declare (array array))
-  (values (%array-data-vector array) (%array-displacement array)))
+  (if (and (array-header-p array) (%array-displaced-p array))
+      (values (%array-data-vector array)
+            (truly-the fixnum (%array-displacement array)))
+      (values nil 0)))
 
 (defun adjustable-array-p (array)
   "Returns T if (adjust-array array...) would return an array identical