diff --git a/compiler/ppc/insts.lisp b/compiler/ppc/insts.lisp
index 6038a026bdb5ac7d405c36ed39c8bf62ef168d3d..21280339bbb5c5a35076010f85ef567c5cf10a37 100644
--- a/compiler/ppc/insts.lisp
+++ b/compiler/ppc/insts.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.19 2006/06/30 18:41:24 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.20 2006/11/30 00:44:34 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -192,7 +192,7 @@ about function addresses and register values.")
 	  ;; 32-bit address or value.  Make a note about this usage as
 	  ;; a Lisp assembly routine or a foreign routine.  If note,
 	  ;; just note the final value.
-	  (let ((addr (+ d (ash (cdr addis) 16))))
+	  (let ((addr (+ d (ldb (byte 32 0) (ash (cdr addis) 16)))))
 	    (or (disassem::note-code-constant-absolute addr dstate)
 		(disassem::maybe-note-assembler-routine addr t dstate)
 		(disassem::note (format nil "~A = #x~8,'0X"