diff --git a/code/debug-int.lisp b/code/debug-int.lisp
index 41fa4010618bfe35cbd8229af5f075242cf0d258..b9fc6ea2ded09df6d9bcddc7b9face60320071e6 100644
--- a/code/debug-int.lisp
+++ b/code/debug-int.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug-int.lisp,v 1.43 1992/03/10 18:32:03 wlott Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/debug-int.lisp,v 1.44 1992/05/18 19:57:03 ram Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1189,8 +1189,11 @@
 	(res nil)
 	(fp (frame-pointer (frame-real-frame frame))))
     (loop
-      (when (eql catch 0) (return (nreverse res)))
-      (when (eq fp (kernel:stack-ref catch vm:catch-block-current-cont-slot))
+      (when (zerop (sap-int catch)) (return (nreverse res)))
+      (when (sap= fp
+		  (system:int-sap
+		   (* (kernel:stack-ref catch vm:catch-block-current-cont-slot)
+		      vm:word-bytes)))
 	(let* ((lra (kernel:stack-ref catch vm:catch-block-entry-pc-slot))
 	       (word-offset (kernel:get-header-data lra)))
 	  (push (cons (kernel:stack-ref catch vm:catch-block-tag-slot)
@@ -1198,7 +1201,11 @@
 		       (* word-offset vm:word-bytes)
 		       (frame-debug-function frame)))
 		res)))
-      (setf catch (kernel:stack-ref catch vm:catch-block-previous-catch-slot)))))
+      (setf catch
+	    (system:int-sap
+	     (* (kernel:stack-ref catch
+				  vm:catch-block-previous-catch-slot)
+		vm:word-bytes))))))
 
 ;;; FRAME-REAL-FRAME -- Internal.
 ;;;