diff --git a/man/libgps.xml b/man/libgps.xml
index 7cb30dee..4dd68e4c 100644
--- a/man/libgps.xml
+++ b/man/libgps.xml
@@ -156,7 +156,15 @@ either a nonblocking read for data from the daemon or a fetch from
shared memory; it returns a count of bytes read for success, -1 with
errno set on a Unix-level read error, -1 with errno not set if the
socket to the daemon has closed or if the shared-memory segment was
-unavailable, and 0 if no data is available.
+unavailable, and 0 if no data is available. This function can deliver
+the messages from gpsd to your application to a buffer you provide. If
+you do not want the messages, provide NULL and 0 for
+message and message_size
+respectively. If you do want them, make message
+at least 4096 bytes, and provide that size as
+message_size. If
+message_size is too small, libgps will truncate
+the data.
gps_waiting() can be used to check whether
there is new data from the daemon. The second argument is the maximum