diff --git a/tests/pcl/defgeneric.lisp b/tests/pcl/defgeneric.lisp
index 05f01c7f03502912c82ac40959dc5708569383b5..2cf9e070e509b58387ca36cefa22419e4d3cb031 100644
--- a/tests/pcl/defgeneric.lisp
+++ b/tests/pcl/defgeneric.lisp
@@ -32,13 +32,12 @@
 
 (in-package "PCL-TESTS")
 
+;; These errors are signaled during macroexpansion of the defgeneric
+;; form so catch the errors during macroexpansion.
 (defmacro define-gf-lambda-list-test (name lambda-list)
-  `(deftest ,name
-       (multiple-value-bind (r c)
-	   (ignore-errors
-	     (defgeneric g ,lambda-list))
-	 (values (null r) (typep c 'error)))
-     t t))
+  `(define-test ,name
+     (assert-error 'program-error
+		   (macroexpand '(defgeneric g ,lambda-list)))))
 
 (define-gf-lambda-list-test defgeneric-lambda-list.0 (a &optional (b 1)))
 (define-gf-lambda-list-test defgeneric-lambda-list.1 (a &key (b 1)))