diff --git a/ansi-tests/cl-symbols.lsp b/ansi-tests/cl-symbols.lsp
index 58f8cb69371cebba54682faf8c1497627ac0396f..6da71a75eebcc9386c5b9bc56b3b45432bdb5a9c 100644
--- a/ansi-tests/cl-symbols.lsp
+++ b/ansi-tests/cl-symbols.lsp
@@ -1063,12 +1063,16 @@
   nil)
 
 ;;; None of the standard symbols except those in +special-operators+
-;;; are special operators
+;;; are special operators, unless they have a macro function
+;;; (See the page for MACRO-FUNCTION)
+
 (deftest special-operator-p.2
   (let ((p (find-package "CL")))
     (loop for name in *cl-symbol-names*
 	  unless (or (member name +special-operators+ :test #'string=)
-		     (not (special-operator-p (find-symbol name p))))
+		     (let ((sym (find-symbol name p)))
+		       (or (not (special-operator-p sym))
+			   (macro-function sym))))
 	  collect name))
   nil)