Index: /trunk/src/org/openstreetmap/josm/data/osm/NoteData.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/NoteData.java	(revision 12733)
+++ /trunk/src/org/openstreetmap/josm/data/osm/NoteData.java	(revision 12734)
@@ -15,6 +15,4 @@
 import org.openstreetmap.josm.data.notes.NoteComment;
 import org.openstreetmap.josm.gui.JosmUserIdentityManager;
-import org.openstreetmap.josm.gui.MainApplication;
-import org.openstreetmap.josm.gui.MapFrame;
 import org.openstreetmap.josm.tools.ListenerList;
 import org.openstreetmap.josm.tools.Logging;
@@ -101,8 +99,4 @@
     public void setSelectedNote(Note note) {
         selectedNote = note;
-        MapFrame map = MainApplication.getMap();
-        if (map != null) {
-            map.noteDialog.selectionChanged();
-        }
         listeners.fireEvent(l -> l.selectedNoteChanged(this));
     }
@@ -236,7 +230,4 @@
 
     private void dataUpdated() {
-        if (MainApplication.isDisplayingMapView()) {
-            MainApplication.getMap().noteDialog.setNotes(getSortedNotes());
-        }
         listeners.fireEvent(l -> l.noteDataUpdated(this));
     }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java	(revision 12733)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/NotesDialog.java	(revision 12734)
@@ -36,4 +36,5 @@
 import org.openstreetmap.josm.data.notes.NoteComment;
 import org.openstreetmap.josm.data.osm.NoteData;
+import org.openstreetmap.josm.data.osm.NoteData.NoteDataUpdateListener;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapFrame;
@@ -55,5 +56,5 @@
  * @since 7608 (creation)
  */
-public class NotesDialog extends ToggleDialog implements LayerChangeListener {
+public class NotesDialog extends ToggleDialog implements LayerChangeListener, NoteDataUpdateListener {
 
     private NoteTableModel model;
@@ -155,4 +156,5 @@
             model.setData(noteData.getNotes());
             setNotes(noteData.getSortedNotes());
+            noteData.addNoteDataUpdateListener(this);
         }
     }
@@ -161,4 +163,5 @@
     public void layerRemoving(LayerRemoveEvent e) {
         if (e.getRemovedLayer() instanceof NoteLayer) {
+            noteData.removeNoteDataUpdateListener(this);
             noteData = null;
             model.clearData();
@@ -173,4 +176,14 @@
     public void layerOrderChanged(LayerOrderChangeEvent e) {
         // ignored
+    }
+
+    @Override
+    public void noteDataUpdated(NoteData data) {
+        setNotes(data.getSortedNotes());
+    }
+
+    @Override
+    public void selectedNoteChanged(NoteData noteData) {
+        selectionChanged();
     }
 
