diff --git a/protocol/wayland.xml b/protocol/wayland.xml
index 156859a5..0e018892 100644
--- a/protocol/wayland.xml
+++ b/protocol/wayland.xml
@@ -126,6 +126,13 @@
       
       
     
+
+    
+      
+	Ask the compositor to create a new region.
+      
+      
+    
   
 
   
@@ -568,6 +575,40 @@
       
     
 
+    
+      
+	This requests sets the region of the surface that contain
+	opaque content.  The opaque region is an optimization hint for
+	the compositor that lets it optimize out redrawing of content
+	behind opaque regions.  Setting an opaque region is not
+	required for correct behaviour, but marking transparent
+	content as opaque will result in repaint artifacts.
+
+	The region will be clipped to the extents of the current
+	surface size.  Setting the region has copy semantics, and the
+	region object can be destroyed immediately after setting the
+	opaque region.  If a buffer of a different size is attached or
+	if a nil region is set, the opaque region will revert back to
+	default.  The default opaque region is empty.
+      
+
+      
+    
+
+    
+      
+	This requests sets the region of the surface that can receive
+	pointer and touch events.  The region will be clipped to the
+	extents of the current surface size.  Setting the region has
+	copy semantics, and the region object can be destroyed
+	immediately after setting the input region.  If a buffer of a
+	different size is attached or if a nil region is passed, the
+	input region will revert back to default.  The default input
+	region is the entire surface.
+      
+
+      
+    
   
 
   
@@ -735,4 +776,39 @@
     
   
 
+  
+    
+      Region.
+    
+
+    
+      
+	Destroy the region.  This will invalidate the object id.
+      
+    
+
+    
+      
+	Add the specified rectangle to the region
+      
+
+      
+      
+      
+      
+    
+
+    
+      
+	Subtract the specified rectangle from the region
+      
+
+      
+      
+      
+      
+    
+
+  
+