diff --git a/code/serve-event.lisp b/code/serve-event.lisp
index 2b4bc213488c3f8ddb5db6f0ef76f688d9a48cf8..ac036da4bba303984e6533382c4448633b674452 100644
--- a/code/serve-event.lisp
+++ b/code/serve-event.lisp
@@ -212,7 +212,7 @@
       (unless (or (handler-active handler)
 		  (handler-bogus handler))
 	(let ((fd (handler-descriptor handler)))
-	  (case (handler-direction handler)
+	  (ecase (handler-direction handler)
 	    (:input
 	     (setf read-mask (logior read-mask (ash 1 fd))))
 	    (:output
@@ -307,7 +307,7 @@
 	     (let ((result nil))
 	       (dolist (handler *descriptor-handlers*)
 		 (when (not (zerop (logand (ash 1 (handler-descriptor handler))
-					   (case (handler-direction handler)
+					   (ecase (handler-direction handler)
 					     (:input readable)
 					     (:output writeable)))))
 		   (unwind-protect
@@ -323,7 +323,7 @@
 							    (handler-descriptor
 							     handler)))
 					       ,var))))
-		     (case (handler-direction handler)
+		     (ecase (handler-direction handler)
 		       (:input (frob readable))
 		       (:output (frob writeable))))
 		   (setf result t)))