diff -wbBur viking-1.1/configure.ac viking-1.1.my/configure.ac --- viking-1.1/configure.ac 2011-02-08 21:29:01.000000000 +0000 +++ viking-1.1.my/configure.ac 2011-04-18 13:31:07.000000000 +0000 @@ -244,7 +244,7 @@ [ac_cv_enable_realtimegpstracking], [ac_cv_enable_realtimegpstracking=yes]) case $ac_cv_enable_realtimegpstracking in yes) - AC_CHECK_LIB(gps,gps_poll,,AC_MSG_ERROR([libgps is needed for Realtime GPS Tracking feature[,] but not found. The feature can be disable with --disable-realtime-gps-tracking])) + AC_CHECK_LIB(gps,gps_read,,AC_MSG_ERROR([libgps is needed for Realtime GPS Tracking feature[,] but not found. The feature can be disable with --disable-realtime-gps-tracking])) AC_DEFINE(VIK_CONFIG_REALTIME_GPS_TRACKING, [], [REALTIME GPS TRACKING STUFF]) ;; esac diff -wbBur viking-1.1/src/vikgpslayer.c viking-1.1.my/src/vikgpslayer.c --- viking-1.1/src/vikgpslayer.c 2011-02-08 21:09:00.000000000 +0000 +++ viking-1.1.my/src/vikgpslayer.c 2011-04-18 13:35:48.000000000 +0000 @@ -1377,8 +1377,11 @@ { VikGpsLayer *vgl = data; if (condition == G_IO_IN) { - if (!gps_poll(&vgl->vgpsd->gpsd)) + if (!gps_read(&vgl->vgpsd->gpsd)) + { + gpsd_raw_hook(&vgl->vgpsd->gpsd, NULL); return TRUE; + } else { g_warning("Disconnected from gpsd. Trying to reconnect"); rt_gpsd_disconnect(vgl); @@ -1408,7 +1411,8 @@ { VikGpsLayer *vgl = (VikGpsLayer *)data; #ifndef HAVE_GPS_OPEN_R - struct gps_data_t *gpsd = gps_open(vgl->gpsd_host, vgl->gpsd_port); + static struct gps_data_t __gd; + struct gps_data_t *gpsd = gps_open(vgl->gpsd_host, vgl->gpsd_port, &__gd) ? NULL : &__gd; if (gpsd == NULL) { #else @@ -1439,7 +1443,7 @@ vik_trw_layer_add_track(vtl, vgl->realtime_track_name, vgl->realtime_track); } - gps_set_raw_hook(&vgl->vgpsd->gpsd, gpsd_raw_hook); +// gps_set_raw_hook(&vgl->vgpsd->gpsd, gpsd_raw_hook); vgl->realtime_io_channel = g_io_channel_unix_new(vgl->vgpsd->gpsd.gps_fd); vgl->realtime_io_watch_id = g_io_add_watch( vgl->realtime_io_channel, G_IO_IN | G_IO_ERR | G_IO_HUP, gpsd_data_available, vgl);