diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index a40e4b0..22851c0 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -126,6 +126,13 @@
       </description>
       <arg name="id" type="new_id" interface="wl_surface"/>
     </request>
+
+    <request name="create_region">
+      <description summary="create new region">
+	Ask the compositor to create a new region.
+      </description>
+      <arg name="id" type="new_id" interface="wl_region"/>
+    </request>
   </interface>
 
   <interface name="wl_shm" version="1">
@@ -568,6 +575,19 @@
       <arg name="callback" type="new_id" interface="wl_callback"/>
     </request>
 
+    <request name="set_opaque_region">
+      <description summary="set opaque region">
+      </description>
+
+      <arg name="region" type="object" interface="wl_region"/>
+    </request>
+
+    <request name="set_input_region">
+      <description summary="set input region">
+      </description>
+
+      <arg name="region" type="object" interface="wl_region"/>
+    </request>
   </interface>
 
   <interface name="wl_input_device" version="1">
@@ -723,4 +743,39 @@
     </event>
   </interface>
 
+  <interface name="wl_region" version="1">
+    <description summary="region interface">
+      Region.
+    </description>
+
+    <request name="destroy" type="destructor">
+      <description summary="destroy region">
+	Destroy the region.  This will invalidate the object id.
+      </description>
+    </request>
+
+    <request name="add">
+      <description summary="add rectangle to region">
+	Add the specified rectangle to the region
+      </description>
+
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+    </request>
+
+    <request name="subtract">
+      <description summary="subtract rectangle from region">
+	Subtract the specified rectangle from the region
+      </description>
+
+      <arg name="x" type="int"/>
+      <arg name="y" type="int"/>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+    </request>
+
+  </interface>
+
 </protocol>
