diff --git a/clx/clx-port.lisp b/clx/clx-port.lisp
index d242c1c47080739bf2ec1c049f871bd6baa8bc44..4854d0ecd61cc374f838ec08d6b3af2c7945eef9 100644
--- a/clx/clx-port.lisp
+++ b/clx/clx-port.lisp
@@ -759,3 +759,18 @@
       (do-shift :hyper))
     mask))
 
+
+
+(defmethod clim-internals::port-query-pointer ((port clx-port) sheet)
+  (multiple-value-bind (native-x native-y samep child? mask? root-x root-y root?)
+      (xlib:query-pointer (sheet-mirror sheet))
+    (declare (ignore samep child? mask? root?))
+    (multiple-value-bind (x y)
+        (untransform-position  (sheet-device-transformation sheet) native-x native-y)
+      (values x y native-x native-y root-x root-y))))
+
+(defmethod clim-internals::port-query-pointer ((port clx-port) (sheet graft))
+  (multiple-value-bind (native-x native-y samep child? mask? root-x root-y root?)
+      (xlib:query-pointer (sheet-mirror sheet))
+    (declare (ignore samep child? mask? root?))
+    (values native-x native-y native-x native-y root-x root-y)))