PUSH loses on MACROEXPANDED forms. Example: (DEFMACRO KAR (X) `(CAR ,X)) KAR (DEFUN KARP (Y X) (PUSH Y (KAR X))) KARP (KARP 'A '((B))) (A B) ;So far so good. (KARP 'A '((B))) At this point it re-autoloads DEFMAX, and then barfs with "MACROEXPANDED Obscure format -- SETF".