diff --git a/pcl/methods.lisp b/pcl/methods.lisp
index 0a6a3a2d05881cc4c40d9c3d3e8c90376999d176..4890da1d35c4c25205b293be8e0735acb40e3ea6 100644
--- a/pcl/methods.lisp
+++ b/pcl/methods.lisp
@@ -26,7 +26,7 @@
 ;;;
 
 (file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/methods.lisp,v 1.40 2003/07/21 17:36:47 gerd Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/pcl/methods.lisp,v 1.41 2003/07/29 12:13:24 gerd Exp $")
 
 (in-package :pcl)
 
@@ -460,6 +460,25 @@
 	  (when remove-again-p
 	    (remove-method gf method))))
       ;;
+      ;; Warn about invalid qualifiers, if we can.
+      (let ((mc (generic-function-method-combination gf)))
+	(cond ((eq mc *standard-method-combination*)
+	       (when (and qualifiers
+			  (or (cdr qualifiers)
+			      (not (memq (car qualifiers)
+					 '(:around :before :after)))))
+		 (warn "~@<Method ~s contains invalid qualifiers for ~
+                        the standard method combination.~@:>"
+		       method)))
+	      ((short-method-combination-p mc)
+	       (let ((mc-name (method-combination-type mc)))
+		 (when (or (/= (length qualifiers) 1)
+			   (and (neq (car qualifiers) :around)
+				(neq (car qualifiers) mc-name)))
+		   (warn "~@<Method ~s contains invalid qualifiers for ~
+                          the method combination ~s.~@:>"
+			 method mc-name))))))
+      ;;
       (unless skip-dfun-update-p
 	(update-ctors 'add-method :generic-function gf :method method)
 	(update-dfun gf))