Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySign.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySign.java	(revision 32976)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/MapillarySign.java	(revision 32977)
@@ -32,5 +32,5 @@
       try (
         BufferedReader br = new BufferedReader(new InputStreamReader(
-          MapillarySign.class.getResourceAsStream("/data/signs/" + country + ".cson")
+          MapillarySign.class.getResourceAsStream("/data/signs/" + country + ".cson"), "UTF-8"
         ));
       ) {
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/WalkThread.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/WalkThread.java	(revision 32976)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/actions/WalkThread.java	(revision 32977)
@@ -18,5 +18,4 @@
  *
  * @author nokutu
- *
  */
 public class WalkThread extends Thread implements MapillaryDataListener {
@@ -33,16 +32,12 @@
    * Main constructor.
    *
-   * @param interval
-   *          How often the images switch.
-   * @param waitForPicture
-   *          If it must wait for the full resolution picture or just the
-   *          thumbnail.
-   * @param followSelected
-   *          Zoom to each image that is selected.
-   * @param goForward
-   *          true to go forward; false to go backwards.
+   * @param interval How often the images switch.
+   * @param waitForPicture If it must wait for the full resolution picture or just the
+   * thumbnail.
+   * @param followSelected Zoom to each image that is selected.
+   * @param goForward true to go forward; false to go backwards.
    */
   public WalkThread(int interval, boolean waitForPicture,
-      boolean followSelected, boolean goForward) {
+                    boolean followSelected, boolean goForward) {
     this.interval = interval;
     this.waitForFullQuality = waitForPicture;
@@ -67,31 +62,27 @@
         }
         try {
-          synchronized (this) {
-            // Waits for full quality picture.
-            final BufferedImage displayImage = MapillaryMainDialog.getInstance().mapillaryImageDisplay.getImage();
-            if (this.waitForFullQuality && image instanceof MapillaryImage) {
-              while (displayImage == this.lastImage || displayImage == null || displayImage.getWidth() < 2048) {
-                wait(100);
-              }
-            } else { // Waits for thumbnail.
-              while (displayImage == this.lastImage || displayImage == null || displayImage.getWidth() < 320) {
-                wait(100);
-              }
+          // Waits for full quality picture.
+          final BufferedImage displayImage = MapillaryMainDialog.getInstance().mapillaryImageDisplay.getImage();
+          if (this.waitForFullQuality && image instanceof MapillaryImage) {
+            while (displayImage == this.lastImage || displayImage == null || displayImage.getWidth() < 2048) {
+              Thread.sleep(100);
             }
-            while (this.paused) {
-              wait(100);
-            }
-            wait(this.interval);
-            while (this.paused) {
-              wait(100);
+          } else { // Waits for thumbnail.
+            while (displayImage == this.lastImage || displayImage == null || displayImage.getWidth() < 320) {
+              Thread.sleep(100);
             }
           }
+          while (this.paused) {
+            Thread.sleep(100);
+          }
+          wait(this.interval);
+          while (this.paused) {
+            Thread.sleep(100);
+          }
           this.lastImage = MapillaryMainDialog.getInstance().mapillaryImageDisplay.getImage();
-          synchronized (this) {
-            if (this.goForward) {
-              this.data.selectNext(this.followSelected);
-            } else {
-              this.data.selectPrevious(this.followSelected);
-            }
+          if (this.goForward) {
+            this.data.selectNext(this.followSelected);
+          } else {
+            this.data.selectPrevious(this.followSelected);
           }
         } catch (InterruptedException e) {
@@ -108,4 +99,5 @@
   /**
    * Downloads n images into the cache beginning from the supplied start-image (including the start-image itself).
+   *
    * @param startImage the image to start with (this and the next n-1 images in the same sequence are downloaded)
    * @param n the number of images to download
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/gui/MapillaryImageDisplay.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/gui/MapillaryImageDisplay.java	(revision 32976)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/gui/MapillaryImageDisplay.java	(revision 32977)
@@ -41,5 +41,5 @@
 
   /** The image currently displayed */
-  private transient BufferedImage image;
+  private volatile BufferedImage image;
 
   /**
@@ -47,5 +47,5 @@
    * rectangle is calculated each time the zoom is modified
    */
-  private Rectangle visibleRect;
+  private volatile Rectangle visibleRect;
 
   /**
