Index: trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilter.java	(revision 12429)
+++ trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilter.java	(revision 12432)
@@ -1,4 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.autofilter;
+
+import java.util.Objects;
 
 import org.openstreetmap.josm.data.osm.Filter;
@@ -48,3 +50,18 @@
         return filter;
     }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(filter);
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null || getClass() != obj.getClass())
+            return false;
+        AutoFilter other = (AutoFilter) obj;
+        return Objects.equals(filter, other.filter);
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 12429)
+++ trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterManager.java	(revision 12432)
@@ -141,5 +141,9 @@
             filter.text = enabledRule.getKey() + "=" + value;
             String label = enabledRule.getValueFormatter().apply(value);
-            AutoFilterButton button = new AutoFilterButton(new AutoFilter(label, filter.text, filter));
+            AutoFilter autoFilter = new AutoFilter(label, filter.text, filter);
+            AutoFilterButton button = new AutoFilterButton(autoFilter);
+            if (autoFilter.equals(currentAutoFilter)) {
+                button.getModel().setPressed(true);
+            }
             buttons.put(value, button);
             maxWidth = Math.max(maxWidth, button.getPreferredSize().width);
