diff --git a/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod b/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod
index 87d3b5da63a4977724a4fa0f9a83d8cd0493a84a..1ab7c0c32d9910e54944673745192d1930e35564 100644
--- a/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod
+++ b/lib/modules/Protocols.pmod/X.pmod/Extensions.pmod
@@ -9,9 +9,13 @@ static class extension
   int init(object d)
   {
     dpy = d;
-    mapping reply = 
+
+    array a =
       d->blocking_request( Requests.QueryExtension( this_object()->name ) );
-    if(!reply) return 0;
+
+    if(!a[0]) return 0;
+
+    mapping reply = a[1];
     major = reply->major;
     error = reply->error;
     event = reply->event;