Index: /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteDefinition.java
===================================================================
--- /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteDefinition.java	(revision 34478)
+++ /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteDefinition.java	(revision 34479)
@@ -8,4 +8,5 @@
 import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
 import org.openstreetmap.josm.data.osm.search.SearchParseError;
+import org.openstreetmap.josm.tools.Logging;
 
 public class RouteDefinition {
@@ -24,5 +25,5 @@
         } catch (SearchParseError e) {
             match = new SearchCompiler.Never();
-            e.printStackTrace();
+            Logging.error(e);
         }
     }
Index: /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java
===================================================================
--- /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java	(revision 34478)
+++ /applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java	(revision 34479)
@@ -4,8 +4,7 @@
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.OutputStream;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.List;
@@ -37,20 +36,11 @@
         MainApplication.getLayerManager().addLayerChangeListener(this);
 
-        File routesFile = new File(getPluginDirs().getUserDataDirectory(false), "routes.xml");
+        File routesFile = new File(getPluginDirs().getUserDataDirectory(true), "routes.xml");
         if (!routesFile.exists()) {
             Logging.info("File with route definitions doesn't exist, using default");
-
-            try {
-                routesFile.getParentFile().mkdir();
-                try (
-                        OutputStream outputStream = new FileOutputStream(routesFile);
-                        InputStream inputStream = Routes.class.getResourceAsStream("routes.xml");
-                        ) {
-                    byte[] b = new byte[512];
-                    int read;
-                    while ((read = inputStream.read(b)) != -1) {
-                        outputStream.write(b, 0, read);
-                    }
-                }
+            try (InputStream inputStream = getClass().getResourceAsStream(
+                    "/resources/org/openstreetmap/josm/plugins/routes/xml/routes.xml");
+                    ) {
+                Files.copy(inputStream, routesFile.toPath());
             } catch (IOException e) {
                 Logging.error(e);
