Index: trunk/src/org/openstreetmap/josm/gui/dialogs/FilterTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/FilterTableModel.java	(revision 3392)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/FilterTableModel.java	(revision 3393)
@@ -64,41 +64,45 @@
     public void executeFilters() {
         DataSet ds = Main.main.getCurrentDataSet();
-        if (ds == null)
-            return;
-
-        final Collection<OsmPrimitive> deselect = new HashSet<OsmPrimitive>();
-
-        ds.beginUpdate();
-        try {
-
-            final Collection<OsmPrimitive> all = ds.allNonDeletedCompletePrimitives();
-
-            FilterWorker.executeFilters(all, filterMatcher);
-
+        if (ds == null) {
+            disabledAndHiddenCount = 0;
             disabledCount = 0;
-            disabledAndHiddenCount = 0;
-            // collect disabled and selected the primitives
-            for (OsmPrimitive osm : all) {
-                if (osm.isDisabled()) {
-                    disabledCount++;
-                    if (osm.isSelected()) {
-                        deselect.add(osm);
-                    }
-                    if (osm.isDisabledAndHidden()) {
-                        disabledAndHiddenCount++;
+        } else {
+            final Collection<OsmPrimitive> deselect = new HashSet<OsmPrimitive>();
+
+            ds.beginUpdate();
+            try {
+
+                final Collection<OsmPrimitive> all = ds.allNonDeletedCompletePrimitives();
+
+                FilterWorker.executeFilters(all, filterMatcher);
+
+                disabledCount = 0;
+                disabledAndHiddenCount = 0;
+                // collect disabled and selected the primitives
+                for (OsmPrimitive osm : all) {
+                    if (osm.isDisabled()) {
+                        disabledCount++;
+                        if (osm.isSelected()) {
+                            deselect.add(osm);
+                        }
+                        if (osm.isDisabledAndHidden()) {
+                            disabledAndHiddenCount++;
+                        }
                     }
                 }
+                disabledCount -= disabledAndHiddenCount;
+            } finally {
+                ds.endUpdate();
             }
-            disabledCount -= disabledAndHiddenCount;
-        } finally {
-            ds.endUpdate();
-        }
-
-        if (!deselect.isEmpty()) {
-            ds.clearSelection(deselect);
-        }
-
-        Main.map.mapView.repaint();
-        Main.map.filterDialog.updateDialogHeader();
+
+            if (!deselect.isEmpty()) {
+                ds.clearSelection(deselect);
+            }
+        }
+
+        if (Main.isDisplayingMapView()) {
+            Main.map.mapView.repaint();
+            Main.map.filterDialog.updateDialogHeader();
+        }
     }
 
