diff --git a/lib/modules/Protocols.pmod/X.pmod/Requests.pmod b/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
index c5c9285e5f596f91cf298d52a8610d50e0477725..51c4da4f9e3272fc1c070a4c12cde4c6f6df9332 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Requests.pmod
@@ -2,7 +2,7 @@
  *
  */
 
-#define error(x) throw( ({ (x), backtrace() }) )
+#include "error.h"
 
 class request
 {
@@ -106,3 +106,38 @@ class MapWindow
   inherit ResourceReq;
   constant type = 8;
 }
+
+class CreateGC
+{
+  inherit request;
+  constant type = 55;
+
+  int gid;
+  int drawable;
+  mapping attributes = ([ ]);
+
+  string to_string()
+  {
+    return build_request(sprintf("%4c%4c%s", gid, drawable,
+				 build_value_list(attributes,
+						  _Xlib.gc_attributes)));
+  }
+}
+
+
+class PolyFillRectangle
+{
+  inherit request;
+  constant type = 70;
+
+  int drawable;
+  int gid;
+
+  array rectangles;
+
+  string to_string()
+  {
+    return build_request(sprintf("%4c%4c%@s", drawable, gid,
+				 rectangles->to_string()));
+  }
+}