Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryDownloader.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryDownloader.java	(revision 31454)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryDownloader.java	(revision 31455)
@@ -14,5 +14,4 @@
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryLayer;
 import org.openstreetmap.josm.plugins.mapillary.MapillaryPlugin;
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryExportWriterThread.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryExportWriterThread.java	(revision 31454)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/downloads/MapillaryExportWriterThread.java	(revision 31455)
@@ -72,5 +72,5 @@
   public void run() {
     this.monitor.setCustomText("Downloaded 0/" + this.amount);
-    //File tempFile = null;
+    // File tempFile = null;
     BufferedImage img;
     MapillaryAbstractImage mimg = null;
@@ -100,4 +100,5 @@
         TiffOutputSet outputSet = null;
         TiffOutputDirectory exifDirectory = null;
+        TiffOutputDirectory gpsDirectory = null;
         // If the image is imported, loads the rest of the EXIF data.
         if (mimg instanceof MapillaryImportedImage) {
@@ -116,12 +117,12 @@
         }
         exifDirectory = outputSet.getOrCreateExifDirectory();
+        gpsDirectory = outputSet.getOrCreateGPSDirectory();
 
-        exifDirectory
-            .removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF);
-        exifDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF,
+        gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF);
+        gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF,
             GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF_VALUE_TRUE_NORTH);
 
-        exifDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION);
-        exifDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION,
+        gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION);
+        gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION,
             RationalNumber.valueOf(mimg.getCa()));
 
@@ -137,5 +138,6 @@
         OutputStream os = new BufferedOutputStream(new FileOutputStream(
             finalPath + ".jpg"));
-        new ExifRewriter().updateExifMetadataLossless(imageBytes, os, outputSet);
+        new ExifRewriter()
+            .updateExifMetadataLossless(imageBytes, os, outputSet);
 
         os.close();
@@ -152,5 +154,6 @@
 
       // Increases the progress bar.
-      this.monitor.worked(PleaseWaitProgressMonitor.PROGRESS_BAR_MAX / this.amount);
+      this.monitor.worked(PleaseWaitProgressMonitor.PROGRESS_BAR_MAX
+          / this.amount);
       this.monitor.setCustomText("Downloaded " + (i + 1) + "/" + this.amount);
     }
Index: applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/oauth/OAuthUtils.java
===================================================================
--- applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/oauth/OAuthUtils.java	(revision 31454)
+++ applications/editors/josm/plugins/mapillary/src/org/openstreetmap/josm/plugins/mapillary/oauth/OAuthUtils.java	(revision 31455)
@@ -248,4 +248,5 @@
     TiffOutputSet outputSet = null;
     TiffOutputDirectory exifDirectory = null;
+    TiffOutputDirectory gpsDirectory = null;
     // If the image is imported, loads the rest of the EXIF data.
     ImageMetadata metadata = Imaging.getMetadata(image.getFile());
@@ -260,12 +261,13 @@
       outputSet = new TiffOutputSet();
     }
+    gpsDirectory = outputSet.getOrCreateGPSDirectory();
     exifDirectory = outputSet.getOrCreateExifDirectory();
 
-    exifDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF);
-    exifDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF,
+    gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF);
+    gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF,
         GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION_REF_VALUE_TRUE_NORTH);
 
-    exifDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION);
-    exifDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION,
+    gpsDirectory.removeField(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION);
+    gpsDirectory.add(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION,
         RationalNumber.valueOf(image.getCa()));
 
Index: applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/UploadTest.java
===================================================================
--- applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/UploadTest.java	(revision 31454)
+++ applications/editors/josm/plugins/mapillary/test/unit/org/openstreetmap/josm/plugins/mapillary/UploadTest.java	(revision 31455)
@@ -2,4 +2,5 @@
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
@@ -35,15 +36,15 @@
       ImageMetadata metadata = Imaging.getMetadata(updatedFile);
       final JpegImageMetadata jpegMetadata = (JpegImageMetadata) metadata;
-      assert (jpegMetadata
+      assertTrue(jpegMetadata
           .findEXIFValueWithExactMatch(GpsTagConstants.GPS_TAG_GPS_LATITUDE_REF) != null);
-      assert (jpegMetadata
+      assertTrue(jpegMetadata
           .findEXIFValueWithExactMatch(GpsTagConstants.GPS_TAG_GPS_LATITUDE) != null);
-      assert (jpegMetadata
+      assertTrue(jpegMetadata
           .findEXIFValueWithExactMatch(GpsTagConstants.GPS_TAG_GPS_LONGITUDE_REF) != null);
-      assert (jpegMetadata
+      assertTrue(jpegMetadata
           .findEXIFValueWithExactMatch(GpsTagConstants.GPS_TAG_GPS_LONGITUDE) != null);
-      assert (jpegMetadata
+      assertTrue(jpegMetadata
           .findEXIFValueWithExactMatch(GpsTagConstants.GPS_TAG_GPS_IMG_DIRECTION) != null);
-      assert (jpegMetadata
+      assertTrue(jpegMetadata
           .findEXIFValueWithExactMatch(ExifTagConstants.EXIF_TAG_DATE_TIME_ORIGINAL) != null);
       assertEquals(0, MapillaryImportAction.degMinSecToDouble(
