diff -Naur gpsd-3.16_orig/gpsd.c gpsd-3.16_patched_client/gpsd.c --- gpsd-3.16_orig/gpsd.c 2016-01-04 15:22:45.000000000 -0500 +++ gpsd-3.16_patched_client/gpsd.c 2017-06-28 11:02:20.253486293 -0400 @@ -1089,7 +1089,7 @@ json_devicelist_dump(reply, replylen); } else if (str_starts_with(buf, "WATCH") && (buf[5] == ';' || buf[5] == '=')) { - const char *start = buf; + const char *start = buf - 1; buf += 5; if (*buf == ';') { ++buf; @@ -1117,7 +1117,6 @@ if (allocated_device(devp)) { (void)awaken(devp); if (devp->sourcetype == source_gpsd) { - (void)gpsd_write(devp, "?", 1); (void)gpsd_write(devp, start, (size_t)(end-start)); } } @@ -1132,7 +1131,6 @@ goto bailout; } else if (awaken(devp)) { if (devp->sourcetype == source_gpsd) { - (void)gpsd_write(devp, "?", 1); (void)gpsd_write(devp, start, (size_t)(end-start)); } } else {