Index: trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 15377)
+++ trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 15378)
@@ -930,4 +930,5 @@
     private void fireEventToListeners(AbstractDatasetChangedEvent event) {
         for (DataSetListener listener : listeners) {
+            Logging.trace("Firing {0} to {1} (dataset)", event, listener);
             event.fire(listener);
         }
Index: trunk/src/org/openstreetmap/josm/data/osm/event/DatasetEventManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/event/DatasetEventManager.java	(revision 15377)
+++ trunk/src/org/openstreetmap/josm/data/osm/event/DatasetEventManager.java	(revision 15378)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeEvent;
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
+import org.openstreetmap.josm.tools.Logging;
 
 /**
@@ -197,4 +198,5 @@
         for (ListenerInfo listener: listeners) {
             if (!listener.consolidate) {
+                Logging.trace("Firing {0} to {1} (normal)", event, listener.listener);
                 event.fire(listener.listener);
             }
@@ -205,4 +207,5 @@
         for (ListenerInfo listener: listeners) {
             if (listener.consolidate) {
+                Logging.trace("Firing {0} to {1} (consolidated)", event, listener.listener);
                 event.fire(listener.listener);
             }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 15377)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 15378)
@@ -174,5 +174,10 @@
     @Override
     public void wayNodesChanged(WayNodesChangedEvent event) {
-        // ignore
+        if (hasMembersReferringTo(Collections.singleton(event.getChangedWay()))) {
+            // refresh connectivity
+            for (int i = 0; i < members.size(); i++) {
+                fireTableCellUpdated(i, 2 /* the column with the connectivity arrow */);
+            }
+        }
     }
 
@@ -666,13 +671,6 @@
         if (primitives == null || primitives.isEmpty())
             return false;
-        Set<OsmPrimitive> referrers = new HashSet<>();
-        for (RelationMember member : members) {
-            referrers.add(member.getMember());
-        }
-        for (OsmPrimitive referred : primitives) {
-            if (referrers.contains(referred))
-                return true;
-        }
-        return false;
+        Set<OsmPrimitive> referrers = members.stream().map(RelationMember::getMember).collect(Collectors.toSet());
+        return primitives.stream().anyMatch(referrers::contains);
     }
 
