diff --git a/pcl/defclass.lisp b/pcl/defclass.lisp
index a920059da4b2808c3457f8c705f485556750434c..299c4bc8034195b7d857d09cdbba430481603dd4 100644
--- a/pcl/defclass.lisp
+++ b/pcl/defclass.lisp
@@ -60,7 +60,11 @@
 		      (or lucid::*compiler-message-string*
 			  ,(definition-name))))
        (eval-when ,times ,form))
-    #-(or Genera LCL3.0)
+    #+cmu
+    (if (member 'compile times)
+	`(eval-when ,times ,form)
+	form)
+    #-(or Genera LCL3.0 cmu)
     (make-progn `',name `(eval-when ,times ,form))))
 
 (defun make-progn (&rest forms)