Index: applications/editors/josm/plugins/livegps/src/livegps/LiveGPSPreferences.java
===================================================================
--- applications/editors/josm/plugins/livegps/src/livegps/LiveGPSPreferences.java	(revision 36120)
+++ applications/editors/josm/plugins/livegps/src/livegps/LiveGPSPreferences.java	(revision 36121)
@@ -60,4 +60,5 @@
     private final JTextField serialDevice = new JTextField(30);
     private final JCheckBox disableGPSD = new JCheckBox(tr("Disable GPSD"));
+    private final JCheckBox showOffset = new JCheckBox(tr("Show Distance to nearest way"));
 
     public LiveGPSPreferences() {
@@ -79,11 +80,16 @@
         panel.add(gpsdPort, GBC.eol().fill(GridBagConstraints.HORIZONTAL).insets(5, 0, 0, 5));
 
+        disableGPSD.setSelected(Config.getPref().getBoolean(C_DISABLED, false));
+        panel.add(disableGPSD, GBC.eol().fill(GridBagConstraints.HORIZONTAL).insets(0, 0, 0, 5));
+
         serialDevice.setText(Config.getPref().get(C_SERIAL));
-        serialDevice.setToolTipText(tr("Serial device for direct NMEA input, does not exist by default"));
+        serialDevice.setToolTipText(tr(".Serial device for direct NMEA input, does not exist by default.</html>"));
         panel.add(new JLabel(tr("Serial device")), GBC.std());
         panel.add(serialDevice, GBC.eol().fill(GridBagConstraints.HORIZONTAL).insets(5, 0, 0, 5));
+        /* I18n : {0} to {3} is like /dev/ttyACM<b>x</b>, {4} and {5} are COM1 and COM9 */
+        panel.add(new JLabel(tr("<html>For Linux {0}, {1}, {2} or {3} (<b>x</b> means any number beginning with 0).<br>For Windows {4} to {5} (COM ports bigger than 9 wont work).</html>", "/dev/ttyS<b>x</b>", "/dev/ttyACM<b>x</b>", "/dev/ttyUSB<b>x</b>", "/dev/rfcomm<b>x</b>", "COM1", "COM9")), GBC.eol().fill(GridBagConstraints.HORIZONTAL).insets(10, 0, 0, 5));
 
-        disableGPSD.setSelected(Config.getPref().getBoolean(C_DISABLED));
-        panel.add(disableGPSD, GBC.eol().fill(GridBagConstraints.HORIZONTAL).insets(5, 0, 0, 5));
+        showOffset.setSelected(Config.getPref().getBoolean(C_WAYOFFSET, false));
+        panel.add(showOffset, GBC.eol().fill(GridBagConstraints.HORIZONTAL).insets(0, 0, 0, 5));
 
         panel.add(Box.createVerticalGlue(), GBC.eol().fill(GridBagConstraints.VERTICAL));
@@ -97,4 +103,5 @@
         Config.getPref().put(C_SERIAL, serialDevice.getText());
         Config.getPref().putBoolean(C_DISABLED, disableGPSD.isSelected());
+        Config.getPref().putBoolean(C_WAYOFFSET, showOffset.isSelected());
         return false;
     }
Index: applications/editors/josm/plugins/livegps/src/livegps/LiveGpsData.java
===================================================================
--- applications/editors/josm/plugins/livegps/src/livegps/LiveGpsData.java	(revision 36120)
+++ applications/editors/josm/plugins/livegps/src/livegps/LiveGpsData.java	(revision 36121)
@@ -176,6 +176,8 @@
         if (wayString == null) {
             Node n = new Node(latLon);
+            Way way = null;
             DataSet ds = MainApplication.getLayerManager().getActiveDataSet();
-            Way way = Geometry.getClosestPrimitive(n, ds.getWays());
+            if (ds != null)
+                Geometry.getClosestPrimitive(n, ds.getWays());
             if (way != null) {
                 wayString = way.getDisplayName(new DefaultNameFormatter() {
Index: applications/editors/josm/plugins/livegps/src/livegps/LiveGpsDialog.java
===================================================================
--- applications/editors/josm/plugins/livegps/src/livegps/LiveGpsDialog.java	(revision 36120)
+++ applications/editors/josm/plugins/livegps/src/livegps/LiveGpsDialog.java	(revision 36121)
@@ -41,4 +41,5 @@
     private JLabel courseLabel;
     private JLabel speedLabel;
+    private JLabel wayText;
     private JPanel panel;
     private LiveGpsStatus status = new LiveGpsStatus(LiveGpsStatus.GpsStatus.CONNECTING, tr("Connecting"));
@@ -56,5 +57,5 @@
         panel.add(nmeaStatusText = new JLabel(tr("Status NMEA")));
         panel.add(nmeaStatusLabel = new JLabel());
-        panel.add(new JLabel(tr("Way Info")));
+        panel.add(wayText = new JLabel(tr("Way Info")));
         panel.add(wayLabel = new JLabel());
         panel.add(latText = new JLabel(tr("Latitude")));
@@ -67,4 +68,10 @@
         panel.add(courseLabel = new JLabel());
         setStatusVisibility(true);
+        if (Config.getPref().getBoolean(LiveGPSPreferences.C_WAYOFFSET, false)) {
+            /* I18N: way information with offset (in m) enabled */
+            wayText.setText(tr("Way Info [m]"));
+        } else {
+            wayText.setText(tr("Way Info"));
+        }
         createLayout(panel, true, null);
     }
@@ -110,4 +117,5 @@
                         longText.setText(tr("Longitude"));
                     }
+
                     latLabel.setText(mCord.latToString(data.getLatLon()));
                     longLabel.setText(mCord.lonToString(data.getLatLon()));
@@ -121,4 +129,10 @@
                     } else {
                         wayLabel.setText(tr("unknown"));
+                    }
+                    if (Config.getPref().getBoolean(LiveGPSPreferences.C_WAYOFFSET, false)) {
+                        /* I18N: way information with offset (in m) enabled */
+                        wayText.setText(tr("Way Info [m]"));
+                    } else {
+                        wayText.setText(tr("Way Info"));
                     }
                 } else {
