Index: src/org/openstreetmap/josm/actions/ValidateAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/ValidateAction.java	(revision 14594)
+++ src/org/openstreetmap/josm/actions/ValidateAction.java	(working copy)
@@ -170,6 +170,7 @@
             }
             tests = null;
             if (ValidatorPrefHelper.PREF_USE_IGNORE.get()) {
+                getProgressMonitor().setCustomText("");
                 getProgressMonitor().subTask(tr("Updating ignored errors ..."));
                 for (TestError error : errors) {
                     if (canceled) return;
Index: src/org/openstreetmap/josm/data/validation/Test.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/Test.java	(revision 14594)
+++ src/org/openstreetmap/josm/data/validation/Test.java	(working copy)
@@ -76,6 +76,8 @@
     /** the start time to compute elapsed time when test finishes */
     protected long startTime;
 
+    private boolean showElementCount;
+
     /**
      * Constructor
      * @param name Name of the test
@@ -202,6 +204,7 @@
         if (progressMonitor != null) {
             progressMonitor.setTicksCount(selection.size());
         }
+        long cnt = 0;
         for (OsmPrimitive p : selection) {
             if (isCanceled()) {
                 break;
@@ -211,6 +214,12 @@
             }
             if (progressMonitor != null) {
                 progressMonitor.worked(1);
+                cnt++;
+                // add frequently changing info to progress monitor so that it
+                // doesn't seem to hang when test takes long
+                if (showElementCount && cnt % 1000 == 0) {
+                    progressMonitor.setExtraText(tr("{0} of {1} elements done", cnt, selection.size()));
+                }
             }
         }
     }
@@ -380,4 +389,8 @@
     public void clear() {
         errors.clear();
     }
+
+    protected void setShowElements(boolean b) {
+        showElementCount = b;
+    }
 }
Index: src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(revision 14594)
+++ src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java	(working copy)
@@ -1092,6 +1092,7 @@
     @Override
     public void startTest(ProgressMonitor progressMonitor) {
         super.startTest(progressMonitor);
+        super.setShowElements(true);
         if (indexData == null) {
             indexData = new IndexData(checks);
         }
