Index: /applications/editors/josm/plugins/NanoLog/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- /applications/editors/josm/plugins/NanoLog/.settings/org.eclipse.jdt.core.prefs	(revision 31980)
+++ /applications/editors/josm/plugins/NanoLog/.settings/org.eclipse.jdt.core.prefs	(revision 31981)
@@ -7,6 +7,11 @@
 org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
 org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
 org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
 org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
@@ -40,5 +45,5 @@
 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
 org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore
 org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
 org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
@@ -81,4 +86,5 @@
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
 org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
 org.eclipse.jdt.core.compiler.problem.unusedImport=warning
 org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
Index: /applications/editors/josm/plugins/NanoLog/build.xml
===================================================================
--- /applications/editors/josm/plugins/NanoLog/build.xml	(revision 31980)
+++ /applications/editors/josm/plugins/NanoLog/build.xml	(revision 31981)
@@ -5,5 +5,5 @@
     <property name="commit.message" value="NanoLog"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="7299"/>
+    <property name="plugin.main.version" value="9383"/>
     <property name="plugin.author" value="Ilya Zverev"/>
     <property name="plugin.class" value="nanolog.NanoLogPlugin"/>
Index: /applications/editors/josm/plugins/NanoLog/src/nanolog/Correlator.java
===================================================================
--- /applications/editors/josm/plugins/NanoLog/src/nanolog/Correlator.java	(revision 31980)
+++ /applications/editors/josm/plugins/NanoLog/src/nanolog/Correlator.java	(revision 31981)
@@ -3,5 +3,4 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -17,6 +16,6 @@
 import org.openstreetmap.josm.data.gpx.GpxTrackSegment;
 import org.openstreetmap.josm.data.gpx.WayPoint;
-import org.openstreetmap.josm.tools.Geometry;
-import org.openstreetmap.josm.tools.date.PrimaryDateParser;
+import org.openstreetmap.josm.tools.UncheckedParseException;
+import org.openstreetmap.josm.tools.date.DateUtils;
 
 /**
@@ -33,5 +32,4 @@
     public static long crudeMatch( List<NanoLogEntry> entries, GpxData data ) {
         List<NanoLogEntry> sortedEntries = new ArrayList<>(entries);
-        PrimaryDateParser dateParser = new PrimaryDateParser();
         Collections.sort(sortedEntries);
         long firstExifDate = sortedEntries.get(0).getTime().getTime();
@@ -47,5 +45,5 @@
 
                     try {
-                        firstGPXDate = dateParser.parse(curDateWpStr).getTime();
+                        firstGPXDate = DateUtils.fromString(curDateWpStr).getTime();
                         break outer;
                     } catch( Exception e ) {
@@ -82,5 +80,4 @@
         List<NanoLogEntry> sortedEntries = new ArrayList<>(entries);
         //int ret = 0;
-        PrimaryDateParser dateParser = new PrimaryDateParser();
         Collections.sort(sortedEntries);
         for( GpxTrack track : data.tracks ) {
@@ -94,5 +91,5 @@
                     if( curWpTimeStr != null ) {
                         try {
-                            long curWpTime = dateParser.parse(curWpTimeStr).getTime() + offset;
+                            long curWpTime = DateUtils.fromString(curWpTimeStr).getTime() + offset;
                             /*ret +=*/ matchPoints(sortedEntries, prevWp, prevWpTime, curWp, curWpTime, offset);
 
@@ -100,5 +97,5 @@
                             prevWpTime = curWpTime;
 
-                        } catch( ParseException e ) {
+                        } catch( UncheckedParseException e ) {
                             Main.error("Error while parsing date \"" + curWpTimeStr + '"');
                             Main.error(e);
@@ -220,5 +217,4 @@
     public static long getGpxDate( GpxData data, LatLon pos ) {
         EastNorth en = Main.getProjection().latlon2eastNorth(pos);
-        PrimaryDateParser dateParser = new PrimaryDateParser();
         for( GpxTrack track : data.tracks ) {
             for( GpxTrackSegment segment : track.getSegments() ) {
@@ -229,5 +225,5 @@
                     if( curWpTimeStr != null ) {
                         try {
-                            long curWpTime = dateParser.parse(curWpTimeStr).getTime();
+                            long curWpTime = DateUtils.fromString(curWpTimeStr).getTime();
                             if( prevWp != null ) {
                                 EastNorth c1 = Main.getProjection().latlon2eastNorth(prevWp.getCoor());
@@ -249,5 +245,5 @@
                             prevWp = curWp;
                             prevWpTime = curWpTime;
-                        } catch( ParseException e ) {
+                        } catch( UncheckedParseException e ) {
                             Main.error("Error while parsing date \"" + curWpTimeStr + '"');
                             Main.error(e);
Index: /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogEntry.java
===================================================================
--- /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogEntry.java	(revision 31980)
+++ /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogEntry.java	(revision 31981)
@@ -25,5 +25,4 @@
         this.time = time;
         this.message = message;
-        this.direction = direction;
     }
 
Index: /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogLayer.java
===================================================================
--- /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogLayer.java	(revision 31980)
+++ /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogLayer.java	(revision 31981)
@@ -62,4 +62,7 @@
         selectedEntry = -1;
         mouseListener = new NLLMouseAdapter();
+    }
+
+    public void setupListeners() {
         Main.map.mapView.addMouseListener(mouseListener);
         Main.map.mapView.addMouseMotionListener(mouseListener);
Index: /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogPlugin.java
===================================================================
--- /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogPlugin.java	(revision 31980)
+++ /applications/editors/josm/plugins/NanoLog/src/nanolog/NanoLogPlugin.java	(revision 31981)
@@ -48,4 +48,5 @@
                         NanoLogLayer layer = new NanoLogLayer(entries);
                         Main.main.addLayer(layer);
+                        layer.setupListeners();
                     }
                 } catch( IOException ex ) {
