diff --git a/lib/modules/Protocols.pmod/X.pmod/Types.pmod b/lib/modules/Protocols.pmod/X.pmod/Types.pmod
index ee9e08ff531c7b5e968f9fbb791f16c55af9ad9e..9bdb4cdb14e9efacc42f4f166e70c52fc0620507 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Types.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Types.pmod
@@ -615,6 +615,24 @@ class Window
       m->type = display->lookup_atom(m->type);
     return m;
   }
+
+  object ClearArea_req(int x, int y, int width, int height, int exposures)
+  {
+    object req = Requests.ClearArea();
+    req->window = id;
+    req->exposures = exposures;
+    req->x = x;
+    req->y = y;
+    req->width = width;
+    req->height = height;
+
+    return req;
+  }
+
+  void ClearArea(int x, int y, int width, int height, int|void exposures)
+  {
+    display->send_request(ClearArea_req(x, y, width, height, exposures));
+  }
   
   // Shape extension
   void ShapeRectangles( string kind, int xo, int yo, string operation,