diff --git a/compiler/ir1tran.lisp b/compiler/ir1tran.lisp
index 0b3ca2bdc648107c9e1de49e814e32d452f58b17..63bef956f5533d4e0a8c04c095d4b65ab5ab8caf 100644
--- a/compiler/ir1tran.lisp
+++ b/compiler/ir1tran.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/compiler/ir1tran.lisp,v 1.172 2005/05/06 16:42:38 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ir1tran.lisp,v 1.173 2006/05/23 20:35:01 rtoy Rel $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1311,7 +1311,14 @@
 	    (compiler-note "Ignoring free ignore declaration for ~S." name)
 	    (compiler-warning "Ignore declaration for unknown variable ~S."
 			      name)))
-       ((and (consp var) (consp (cdr var)) (eq (car var) 'macro))
+       ((and (consp var)
+	     (eq (car var) 'macro)
+	     ;; Var is '(macro foo). Why must foo be a cons?  This
+	     ;; causes (symbol-macrolet ((a 42)) (declare (ignorable
+	     ;; a)) ...) to get a type error from a test below because
+	     ;; var is '(macro . 42) in this case.
+	     #+nil
+	     (consp (cdr var)))
 	;; Just ignore the ignore decl.
 	)
        ((functional-p var)