Index: applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetTrace.java
===================================================================
--- applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetTrace.java	(revision 31368)
+++ applications/editors/josm/plugins/tracer2/src/org/openstreetmap/josm/plugins/tracer2/server/GetTrace.java	(revision 31369)
@@ -44,4 +44,6 @@
     */
     public void run() {
+    	m_listLatLon = new ArrayList<>();
+    	
         try {
             String strResponse = callServer("traceOrder=GetTrace"
@@ -66,23 +68,48 @@
             }
             
-            if (!strResponse.startsWith("(") || !strResponse.endsWith(")")){
+            if (strResponse.startsWith("(")) {
+            	GetPoints(strResponse);
             	return;
             }
-            strResponse = strResponse.substring(1, strResponse.length()-1);
-            
-            ArrayList<LatLon> nodelist = new ArrayList<>();
-            
-            String[] astrPoints = strResponse.split("\\)\\(");
-            for (String strPoint : astrPoints) {
-                String[] astrParts = strPoint.split(":");
-                double x = Double.parseDouble(astrParts[0]);
-                double y = Double.parseDouble(astrParts[1]);
-                nodelist.add(new LatLon(x, y));
+            String[] astrParts = strResponse.split("&");
+
+            for (String strPart : astrParts) {
+            	if (strPart.contains("tracePoints="))
+            	{
+            		String strPoints = strPart.replace("tracePoints=", "");
+            		GetPoints(strPoints);
+            		return;
+            	}
             }
-            m_listLatLon = nodelist;
         } catch (Exception e) {
-        	m_listLatLon = new ArrayList<>();
+        	//m_listLatLon = new ArrayList<>();
         }
     }
     
+    
+    /**
+     * Get points from string
+     */
+     public void GetPoints(String strResponse) {
+         try {
+             if (!strResponse.startsWith("(") || !strResponse.endsWith(")")){
+             	return;
+             }
+             strResponse = strResponse.substring(1, strResponse.length()-1);
+             
+             ArrayList<LatLon> nodelist = new ArrayList<>();
+             
+             String[] astrPoints = strResponse.split("\\)\\(");
+             for (String strPoint : astrPoints) {
+                 String[] astrParts = strPoint.split(":");
+                 double x = Double.parseDouble(astrParts[0]);
+                 double y = Double.parseDouble(astrParts[1]);
+                 nodelist.add(new LatLon(x, y));
+             }
+             m_listLatLon = nodelist;
+         } catch (Exception e) {
+         	//m_listLatLon = new ArrayList<>();
+         }
+     }
+    
 }
