diff --git a/doc/publican/sources/Protocol.xml b/doc/publican/sources/Protocol.xml
index 69edd2c..a472f1d 100644
--- a/doc/publican/sources/Protocol.xml
+++ b/doc/publican/sources/Protocol.xml
@@ -400,11 +400,12 @@
request is ignored. To the client this will look like it successfully
set the pointer image.
+
+ Setting the pointer image to NULL causes the cursor to be hidden.
+
The compositor will revert the pointer image back to a default image
- when no surface has the pointer focus for that device. Clients can
- revert the pointer image back to the default image by setting a NULL
- image.
+ when no surface has the pointer focus for that device.
What if the pointer moves from one window which has set a special
@@ -412,7 +413,10 @@
the motion event? The new surface will be stuck with the special
pointer image. We can't just revert the pointer image on leaving a
surface, since if we immediately enter a surface that sets a different
- image, the image will flicker. Broken app, I suppose.
+ image, the image will flicker. If a client does not set a pointer image
+ when the pointer enters a surface, the pointer stays with the image set
+ by the last surface that changed it, possibly even hidden. Such a client
+ is likely just broken.