Index: trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 9940)
+++ trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 9941)
@@ -35,4 +35,5 @@
 import org.openstreetmap.josm.data.osm.event.DataSetListener;
 import org.openstreetmap.josm.data.osm.event.NodeMovedEvent;
+import org.openstreetmap.josm.data.osm.event.PrimitiveFlagsChangedEvent;
 import org.openstreetmap.josm.data.osm.event.PrimitivesAddedEvent;
 import org.openstreetmap.josm.data.osm.event.PrimitivesRemovedEvent;
@@ -1224,4 +1225,8 @@
     }
 
+    void firePrimitiveFlagsChanged(OsmPrimitive primitive) {
+        fireEvent(new PrimitiveFlagsChangedEvent(this, primitive));
+    }
+
     void fireHighlightingChanged() {
         highlightUpdateCount++;
Index: trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 9940)
+++ trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 9941)
@@ -568,4 +568,7 @@
         try {
             super.setModified(modified);
+            if (dataSet != null) {
+                dataSet.firePrimitiveFlagsChanged(this);
+            }
             clearCachedStyle();
         } finally {
Index: trunk/src/org/openstreetmap/josm/data/osm/event/AbstractDatasetChangedEvent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/event/AbstractDatasetChangedEvent.java	(revision 9940)
+++ trunk/src/org/openstreetmap/josm/data/osm/event/AbstractDatasetChangedEvent.java	(revision 9941)
@@ -17,5 +17,6 @@
         TAGS_CHANGED,
         WAY_NODES_CHANGED,
-        CHANGESET_ID_CHANGED
+        CHANGESET_ID_CHANGED,
+        PRIMITIVE_FLAGS_CHANGED,
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/event/PrimitiveFlagsChangedEvent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/event/PrimitiveFlagsChangedEvent.java	(revision 9941)
+++ trunk/src/org/openstreetmap/josm/data/osm/event/PrimitiveFlagsChangedEvent.java	(revision 9941)
@@ -0,0 +1,36 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.osm.event;
+
+import java.util.Collection;
+import java.util.Collections;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
+
+/**
+ * Represents a change in {@link OsmPrimitive#flags} unless covered by a more specific {@linkplain AbstractDatasetChangedEvent event}
+ */
+public class PrimitiveFlagsChangedEvent extends AbstractDatasetChangedEvent {
+
+    private final OsmPrimitive primitive;
+
+    public PrimitiveFlagsChangedEvent(DataSet dataSet, OsmPrimitive primitive) {
+        super(dataSet);
+        this.primitive = primitive;
+    }
+
+    @Override
+    public void fire(DataSetListener listener) {
+        listener.otherDatasetChange(this);
+    }
+
+    @Override
+    public Collection<? extends OsmPrimitive> getPrimitives() {
+        return Collections.singleton(primitive);
+    }
+
+    @Override
+    public DatasetEventType getType() {
+        return DatasetEventType.PRIMITIVE_FLAGS_CHANGED;
+    }
+}
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 9940)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/FilterDialog.java	(revision 9941)
@@ -329,5 +329,5 @@
     @Override
     public void nodeMoved(NodeMovedEvent event) {
-        // Do nothing
+        filterModel.executeFilters();
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 9940)
+++ trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	(revision 9941)
@@ -524,8 +524,13 @@
         // if uploaded, clean the modified flags as well
         data.cleanupDeletedPrimitives();
-        for (OsmPrimitive p: data.allPrimitives()) {
-            if (processed.contains(p)) {
-                p.setModified(false);
-            }
+        data.beginUpdate();
+        try {
+            for (OsmPrimitive p: data.allPrimitives()) {
+                if (processed.contains(p)) {
+                    p.setModified(false);
+                }
+            }
+        } finally {
+            data.endUpdate();
         }
     }
