Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/SavePictureCalibrationToWorldAction.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/SavePictureCalibrationToWorldAction.java	(revision 34654)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/actions/SavePictureCalibrationToWorldAction.java	(revision 34655)
@@ -7,6 +7,7 @@
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileWriter;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 
 import javax.swing.JFileChooser;
@@ -16,4 +17,5 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.plugins.piclayer.layer.PicLayerAbstract;
+import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -73,5 +75,5 @@
                 file = new File(path + "." + wext);
             }
-            try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
+            try (BufferedWriter bw = Files.newBufferedWriter(file.toPath(), StandardCharsets.UTF_8)) {
                 for (int i = 0; i < 6; i++) {
                     bw.write(Double.toString(values[i]));
@@ -81,6 +83,5 @@
                 }
             } catch (IOException e) {
-                // Error
-                e.printStackTrace();
+                Logging.error(e);
                 JOptionPane.showMessageDialog(MainApplication.getMainFrame(),
                         tr("Saving file failed: {0}", e.getMessage()), tr("Problem occurred"), JOptionPane.WARNING_MESSAGE);
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/command/TransformCommand.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/command/TransformCommand.java	(revision 34654)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/command/TransformCommand.java	(revision 34655)
@@ -77,7 +77,7 @@
         afterTransform = extractTransform();
 
-        boolean changed = !(beforeTransform.getTransform().equals(afterTransform.getTransform())) ||
-            !(beforeTransform.getOriginPoints().equals(afterTransform.getOriginPoints())) ||
-            !(beforeTransform.getImagePosition().equals(afterTransform.getImagePosition()));
+        boolean changed = !beforeTransform.getTransform().equals(afterTransform.getTransform()) ||
+            !beforeTransform.getOriginPoints().equals(afterTransform.getOriginPoints()) ||
+            !beforeTransform.getImagePosition().equals(afterTransform.getImagePosition());
         if (changed && !alreadyAdded) {
             UndoRedoHandler.getInstance().add(this);
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/layer/PicLayerAbstract.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/layer/PicLayerAbstract.java	(revision 34654)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/layer/PicLayerAbstract.java	(revision 34655)
@@ -146,7 +146,5 @@
             EastNorth center = MainApplication.getMap().mapView.getCenter();
 
-//            imagePosition = new EastNorth(center.east(), center.north());
             transformer.setImagePosition(new EastNorth(center.east(), center.north()));
-//            initialImagePosition = new EastNorth(imagePosition.east(), imagePosition.north());
             // Initial scale at which the image was loaded
             initialImageScale = MainApplication.getMap().mapView.getDist100Pixel();
@@ -161,5 +159,5 @@
         }
         // Load image completely
-        (new ImageIcon(image)).getImage();
+        new ImageIcon(image).getImage();
 
         lookForCalibration();
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/layer/kml/KMLReader.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/layer/kml/KMLReader.java	(revision 34654)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/layer/kml/KMLReader.java	(revision 34655)
@@ -3,6 +3,7 @@
 
 import java.io.File;
-import java.io.FileReader;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
 import java.util.List;
 
@@ -27,5 +28,5 @@
             XMLReader xr = XMLReaderFactory.createXMLReader();
             xr.setContentHandler(handler);
-            xr.parse(new InputSource(new FileReader(file)));
+            xr.parse(new InputSource(Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)));
         } catch (SAXException | IOException e) {
             Logging.error(e);
Index: /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/transform/Matrix3D.java
===================================================================
--- /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/transform/Matrix3D.java	(revision 34654)
+++ /applications/editors/josm/plugins/piclayer/src/org/openstreetmap/josm/plugins/piclayer/transform/Matrix3D.java	(revision 34655)
@@ -59,13 +59,13 @@
         double s = 1/det;
 
-        invert.a[0][0] = (s) * (a[1][1] * a[2][2] - a[1][2] * a[2][1]);
-        invert.a[1][0] = (s) * (a[1][2] * a[2][0] - a[1][0] * a[2][2]);
-        invert.a[2][0] = (s) * (a[1][0] * a[2][1] - a[1][1] * a[2][0]);
-        invert.a[0][1] = (s) * (a[0][2] * a[2][1] - a[0][1] * a[2][2]);
-        invert.a[1][1] = (s) * (a[0][0] * a[2][2] - a[0][2] * a[2][0]);
-        invert.a[2][1] = (s) * (a[0][1] * a[2][0] - a[0][0] * a[2][1]);
-        invert.a[0][2] = (s) * (a[0][1] * a[1][2] - a[0][2] * a[1][1]);
-        invert.a[1][2] = (s) * (a[0][2] * a[1][0] - a[0][0] * a[1][2]);
-        invert.a[2][2] = (s) * (a[0][0] * a[1][1] - a[0][1] * a[1][0]);
+        invert.a[0][0] = s * (a[1][1] * a[2][2] - a[1][2] * a[2][1]);
+        invert.a[1][0] = s * (a[1][2] * a[2][0] - a[1][0] * a[2][2]);
+        invert.a[2][0] = s * (a[1][0] * a[2][1] - a[1][1] * a[2][0]);
+        invert.a[0][1] = s * (a[0][2] * a[2][1] - a[0][1] * a[2][2]);
+        invert.a[1][1] = s * (a[0][0] * a[2][2] - a[0][2] * a[2][0]);
+        invert.a[2][1] = s * (a[0][1] * a[2][0] - a[0][0] * a[2][1]);
+        invert.a[0][2] = s * (a[0][1] * a[1][2] - a[0][2] * a[1][1]);
+        invert.a[1][2] = s * (a[0][2] * a[1][0] - a[0][0] * a[1][2]);
+        invert.a[2][2] = s * (a[0][0] * a[1][1] - a[0][1] * a[1][0]);
 
         return invert;
