This is actually a CMUCL bug. It is possible to "punt" more aggressively by introducing #+cmu before (< existing-version 2.27) in header.lisp, but this doesn't help. It looks like CMUCL somehow fails to properly finalize classes that are redefined in an eval-when, and/or the old objects end up not upgraded properly. Or something. make u l=cmucl ASDF_UPGRADE_TEST_TAGS=2.27 Error in function KERNEL:CLASS-TYPEP: Class is currently invalid: # 0: (SIGNAL #) 1: (ERROR "Class is currently invalid: ~S" #) 2: (KERNEL:CLASS-TYPEP # # #) 3: (ASDF/FIND-SYSTEM:LOCATE-SYSTEM "asdf") 4: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. NAME .REST-ARG.)") 5: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. NAME .REST-ARG.)" 0)[:EXTERNAL] 6: ((PCL:FAST-METHOD ASDF/SYSTEM:FIND-SYSTEM (STRING)) # # "asdf" (NIL)) 7: ((PCL:FAST-METHOD ASDF/SYSTEM:FIND-SYSTEM (STRING)) 4 # # "asdf" ...)[:EXTERNAL] 8: ((PCL:FAST-METHOD ASDF/FIND-COMPONENT:FIND-COMPONENT (STRING T)) (#() . #(#)) # "asdf" NIL) 9: ((PCL:FAST-METHOD ASDF/FIND-COMPONENT:FIND-COMPONENT (STRING T)) 4 (#() . #(#)) # "asdf" ...)[:EXTERNAL] 10: ((PCL:FAST-METHOD ASDF/FIND-COMPONENT:FIND-COMPONENT (SYMBOL T)) # # :ASDF NIL) 11: ((PCL:FAST-METHOD ASDF/FIND-COMPONENT:FIND-COMPONENT (SYMBOL T)) 4 # # :ASDF ...)[:EXTERNAL] 12: ((PCL:FAST-METHOD ASDF/FIND-COMPONENT:FIND-COMPONENT (SYMBOL T)) # # NIL :ASDF) 13: ((PCL:FAST-METHOD ASDF/FIND-COMPONENT:FIND-COMPONENT (SYMBOL T)) 4 # # NIL ...)[:EXTERNAL] 14: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE (SYMBOL T)) # # ASDF/LISP-ACTION:LOAD-OP :ASDF ...) 15: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE (SYMBOL T)) 5 # # ASDF/LISP-ACTION:LOAD-OP ...)[:EXTERNAL] 16: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)") 17: ("LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OPERATION COMPONENT .REST-ARG.)" 0)[:EXTERNAL] 18: (ASDF/CACHE:CALL-WITH-ASDF-CACHE # :OVERRIDE NIL)[:OPTIONAL] 19: (ASDF/FIND-SYSTEM::CALL-WITH-SYSTEM-DEFINITIONS #) 20: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) # #S(PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2 . T)) ASDF/LISP-ACTION:LOAD-OP :ASDF ...) 21: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) 5 # #S(PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2 . T)) ASDF/LISP-ACTION:LOAD-OP ...)[:EXTERNAL] 22: (ASDF/OPERATE:LOAD-SYSTEM :ASDF :VERBOSE NIL)[:OPTIONAL] 23: (ASDF/UPGRADE:UPGRADE-ASDF) 24: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) # #S(PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2 . T)) ASDF/LISP-ACTION:LOAD-OP :TEST-ASDF/ALL ...) 25: ((PCL:FAST-METHOD ASDF/OPERATE:OPERATE :AROUND (T T)) 5 # #S(PCL::FAST-METHOD-CALL :FUNCTION # :PV-CELL NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2 . T)) ASDF/LISP-ACTION:LOAD-OP ...)[:EXTERNAL] 26: (LOAD-TEST-SYSTEM :TEST-ASDF/ALL :VERBOSE NIL)[:OPTIONAL] 27: (NIL) 28: (CALL-WITH-TEST #) 29: (CALL-WITH-TEST #) 30: (EXTENSIONS:INTERACTIVE-EVAL (TEST-UPGRADE 'LOAD-ASDF-LISP 'LOAD-ASDF-LISP-CLEAN "2.27")) 31: (LISP::%TOP-LEVEL) 32: ((LABELS LISP::RESTART-LISP EXTENSIONS:SAVE-LISP))