diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h
index a5d7e897670cfaf34839ce1c89110b0469a4788a..398037dfd75a515579bba7899475e79acf08e8b4 100644
--- a/include/X11/Xlibint.h
+++ b/include/X11/Xlibint.h
@@ -804,12 +804,12 @@ typedef struct _XAsyncEState {
 } _XAsyncErrorState;
 
 extern void _XDeqAsyncHandler(Display *dpy, _XAsyncHandler *handler);
-#define DeqAsyncHandler(dpy,handler) { \
+#define DeqAsyncHandler(dpy,handler) do { \
     if (dpy->async_handlers == (handler)) \
 	dpy->async_handlers = (handler)->next; \
     else \
 	_XDeqAsyncHandler(dpy, handler); \
-    }
+    } while (0)
 
 typedef void (*FreeFuncType) (
     Display*	/* display */