diff --git a/include/X11/extensions/Xfixes.h b/include/X11/extensions/Xfixes.h
index 873aab3..fdd3847 100644
--- a/include/X11/extensions/Xfixes.h
+++ b/include/X11/extensions/Xfixes.h
@@ -249,6 +249,13 @@ XFixesShowCursor (Display *dpy, Window win);
 
 #endif /* XFIXES_MAJOR >= 4 */
 
+#if XFIXES_MAJOR >= 5
+
+void
+XFixesSetCursorRegion (Display *dpy, Window win, XserverRegion region);
+
+#endif
+
 _XFUNCPROTOEND
 
 #endif /* _XFIXES_H_ */
diff --git a/src/Region.c b/src/Region.c
index 842da06..72afaa3 100644
--- a/src/Region.c
+++ b/src/Region.c
@@ -442,3 +442,19 @@ XFixesExpandRegion (Display *dpy, XserverRegion dst, XserverRegion src,
     SyncHandle();
 }
 
+void
+XFixesSetCursorRegion (Display *dpy, Window win, XserverRegion region)
+{
+    XFixesExtDisplayInfo	    *info = XFixesFindDisplay (dpy);
+    xXFixesSetCursorRegionReq  *req;
+
+    XFixesSimpleCheckExtension (dpy, info);
+    LockDisplay (dpy);
+    GetReq (XFixesSetCursorRegion, req);
+    req->reqType = info->codes->major_opcode;
+    req->xfixesReqType = X_XFixesSetCursorRegion;
+    req->window = win;
+    req->region = region;
+    UnlockDisplay (dpy);
+    SyncHandle();
+}
