Index: applications/editors/josm/plugins/globalsat/.classpath
===================================================================
--- applications/editors/josm/plugins/globalsat/.classpath	(revision 16585)
+++ applications/editors/josm/plugins/globalsat/.classpath	(revision 16585)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="lib" path="libs/RXTXcomm.jar"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/JOSM"/>
+	<classpathentry kind="output" path="build"/>
+</classpath>
Index: applications/editors/josm/plugins/globalsat/.project
===================================================================
--- applications/editors/josm/plugins/globalsat/.project	(revision 16585)
+++ applications/editors/josm/plugins/globalsat/.project	(revision 16585)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>globalsat</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: applications/editors/josm/plugins/globalsat/build.xml
===================================================================
--- applications/editors/josm/plugins/globalsat/build.xml	(revision 16584)
+++ applications/editors/josm/plugins/globalsat/build.xml	(revision 16585)
@@ -32,5 +32,5 @@
                 <attribute name="Plugin-Description" value="Download GPS points from Globalsat dg100 data logger directly in JOSM."/>
                 <attribute name="Plugin-Link" value="http://www.raphael-mack.de/josm-globalsat-gpx-import-plugin/"/>
-                <attribute name="Plugin-Mainversion" value="1465"/>
+                <attribute name="Plugin-Mainversion" value="1813"/>
                 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
             </manifest>
Index: applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java
===================================================================
--- applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java	(revision 16584)
+++ applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java	(revision 16585)
@@ -6,26 +6,27 @@
 package org.openstreetmap.josm.plugins.globalsat;
 
-import java.util.*;
-import java.util.logging.*;
-import java.io.FileOutputStream;
-import java.io.OutputStream;
+import gnu.io.CommPortIdentifier;
+import gnu.io.PortInUseException;
+import gnu.io.SerialPort;
+import gnu.io.UnsupportedCommOperationException;
+
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.nio.ByteBuffer;
-import java.lang.Exception;
-
-import gnu.io.*;
-
-import org.kaintoch.gps.globalsat.dg100.Response;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.kaintoch.gps.globalsat.dg100.ByteHelper;
 import org.kaintoch.gps.globalsat.dg100.Dg100Config;
 import org.kaintoch.gps.globalsat.dg100.FileInfoRec;
 import org.kaintoch.gps.globalsat.dg100.GpsRec;
-import org.kaintoch.gps.globalsat.dg100.ByteHelper;
-
-import org.openstreetmap.josm.Main;
+import org.kaintoch.gps.globalsat.dg100.Response;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.data.gpx.GpxTrack;
 import org.openstreetmap.josm.data.gpx.WayPoint;
-import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 
 /**
@@ -132,39 +133,42 @@
      * @param port DG-100 is connected to port.
      */
-    public GpxData readData() throws ConnectionException {
-        GpxData result = null;
-        int cnt = 0;
-        cancelled = false;
-        if(port == null){
-            connect();
-        }
-        Main.pleaseWaitDlg.progress.setValue(0);
-
-        List<FileInfoRec> fileInfoList = readFileInfoList();
-        List<GpsRec> gpsRecList = readGpsRecList(fileInfoList);
-
-        Main.pleaseWaitDlg.progress.setMaximum(gpsRecList.size());
-        if(gpsRecList.size() > 0){
-            GpsRec last = null;
-            GpxTrack trk = new GpxTrack();
-            Collection<WayPoint> seg = new ArrayList<WayPoint>(100);
-            result = new GpxData();
-            result.tracks.add(trk);
-            trk.trackSegs.add(seg);
-            for(GpsRec r:gpsRecList){
-                if(cancelled){
-                    return result;
-                }
-                WayPoint p = wayPointFrom(r);
-                if(r.equals(last)){
-                    result.waypoints.add(p);
-                }else{
-                    seg.add(p);
-                }
-                last = r;
-                Main.pleaseWaitDlg.progress.setValue(cnt++);
-            }
-        }
-        return result;
+    public GpxData readData(ProgressMonitor progressMonitor) throws ConnectionException {
+    	progressMonitor.beginTask(null);
+    	try {
+    		GpxData result = null;
+    		cancelled = false;
+    		if(port == null){
+    			connect();
+    		}
+
+    		List<FileInfoRec> fileInfoList = readFileInfoList();
+    		List<GpsRec> gpsRecList = readGpsRecList(fileInfoList);
+
+    		progressMonitor.setTicksCount(gpsRecList.size());
+    		if(gpsRecList.size() > 0){
+    			GpsRec last = null;
+    			GpxTrack trk = new GpxTrack();
+    			Collection<WayPoint> seg = new ArrayList<WayPoint>(100);
+    			result = new GpxData();
+    			result.tracks.add(trk);
+    			trk.trackSegs.add(seg);
+    			for(GpsRec r:gpsRecList){
+    				if(cancelled){
+    					return result;
+    				}
+    				WayPoint p = wayPointFrom(r);
+    				if(r.equals(last)){
+    					result.waypoints.add(p);
+    				}else{
+    					seg.add(p);
+    				}
+    				last = r;
+    				progressMonitor.worked(1);
+    			}
+    		}
+    		return result;
+    	} finally {
+    		progressMonitor.finishTask();
+    	}
     }
 
Index: applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java
===================================================================
--- applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java	(revision 16584)
+++ applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java	(revision 16585)
@@ -2,28 +2,23 @@
 /// @author Raphael Mack <ramack@raphael-mack.de>
 import static org.openstreetmap.josm.tools.I18n.tr;
+import gnu.io.CommPortIdentifier;
 
-import java.io.IOException;
-import org.xml.sax.SAXException;
-
-import java.util.Enumeration;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
+import java.io.IOException;
+import java.util.Enumeration;
 
 import javax.swing.JDialog;
 import javax.swing.JOptionPane;
-import javax.swing.JPanel;
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.gui.IconToggleButton;
-import org.openstreetmap.josm.gui.MapFrame;
-import org.openstreetmap.josm.gui.layer.Layer;
-import org.openstreetmap.josm.gui.layer.GpxLayer;
-import org.openstreetmap.josm.gui.PleaseWaitRunnable;
-import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.data.gpx.GpxData;
+import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.layer.GpxLayer;
+import org.openstreetmap.josm.gui.progress.ProgressMonitor;
+import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.tools.Shortcut;
-
-import gnu.io.*;
+import org.xml.sax.SAXException;
 
 public class GlobalsatPlugin extends Plugin {
@@ -51,8 +46,7 @@
 
         @Override public void realRun() throws IOException, SAXException {
-            Main.pleaseWaitDlg.progress.setValue(0);
-            Main.pleaseWaitDlg.currentAction.setText(tr("Importing data from DG100..."));
+        	progressMonitor.subTask(tr("Importing data from DG100..."));
             try{
-                data = GlobalsatPlugin.dg100().readData();
+                data = GlobalsatPlugin.dg100().readData(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, true));
             }catch(Exception e){
                 eee = e;
