Index: trunk/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java	(revision 4022)
+++ trunk/src/org/openstreetmap/josm/actions/upload/ValidateUploadHook.java	(revision 4023)
@@ -21,6 +21,8 @@
 import org.openstreetmap.josm.data.validation.TestError;
 import org.openstreetmap.josm.data.validation.util.AgregatePrimitivesVisitor;
+import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.dialogs.validator.ValidatorTreePanel;
 import org.openstreetmap.josm.gui.preferences.ValidatorPreference;
+import org.openstreetmap.josm.gui.widgets.HtmlPanel;
 import org.openstreetmap.josm.tools.GBC;
 
@@ -108,17 +110,41 @@
         ValidatorTreePanel errorPanel = new ValidatorTreePanel(errors);
         errorPanel.expandAll();
-        p.add(new JScrollPane(errorPanel), GBC.eol());
+        HtmlPanel pnlMessage = new HtmlPanel();
+        pnlMessage.setText("<html><body>"
+                + tr("The following are results of automatic validation. Try fixing"
+                + " these, but be careful( don't destray valid data)."
+                + " When in doubt ignore them.<br>When you"
+                + " cancel this dialog, you can find the entries in the validator"
+                + " side panel to inspect them.")
+                + "<table align=\"center\">"
+                + "<tr><td align=\"left\"><b>"+tr("Errors")
+                + "&nbsp;</b></td><td align=\"left\">"
+                + tr("Usually this should be fixed.")+"</td></tr>"
+                + "<tr><td align=\"left\"><b>"+tr("Warnings")
+                + "&nbsp;</b></td><td align=\"left\">"
+                + tr("Fix these when possible.")+"</td></tr>"
+                + "<tr><td align=\"left\"><b>"+tr("Other")
+                + "&nbsp;</b></td><td align=\"left\">"
+                + tr("Informational warnings, expect many false entries.")+"</td></tr>"
+                + "</table>"
+        );
+        p.add(pnlMessage, GBC.eol());
+        p.add(new JScrollPane(errorPanel), GBC.eol().fill(GBC.BOTH));
 
-        int res = JOptionPane.showConfirmDialog(Main.parent, p,
-            tr("Data with errors. Upload anyway?"),
-            JOptionPane.YES_NO_OPTION,
-            JOptionPane.QUESTION_MESSAGE);
-        if (res == JOptionPane.NO_OPTION) {
+        ExtendedDialog ed = new ExtendedDialog(Main.parent,
+                tr("Supicious data found. Upload anyway?"),
+                new String[] {tr("Continue upload"), tr("Cancel")});
+        ed.setButtonIcons(new String[] {"ok.png", "cancel.png"});
+        ed.setContent(p);
+        ed.showDialog();
+
+        if(ed.getValue() != 1) {
             OsmValidator.initializeErrorLayer();
             Main.map.validatorDialog.unfurlDialog();
             Main.map.validatorDialog.tree.setErrors(errors);
             Main.main.getCurrentDataSet().fireSelectionChanged();
+            return false;
         }
-        return res == JOptionPane.YES_OPTION;
+        return true;
     }
 }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 4022)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/TagChecker.java	(revision 4023)
@@ -399,6 +399,6 @@
 
                 if (!ignore) {
-                    errors.add( new TestError(this, Severity.ERROR, tr("Illegal tag/value combinations"),
-                            tr("Illegal tag/value combinations"), tr("Illegal tag/value combinations"), 1272, p) );
+                    errors.add( new TestError(this, Severity.ERROR, tr("Suspicious tag/value combinations"),
+                            tr("Suspicious tag/value combinations"), tr("Suspicious tag/value combinations"), 1272, p) );
                     withErrors.put(p, "TC");
                 }
@@ -408,5 +408,5 @@
             for (CheckerData d : checkerData) {
                 if (d.match(p, keys)) {
-                    errors.add( new TestError(this, d.getSeverity(), tr("Illegal tag/value combinations"),
+                    errors.add( new TestError(this, d.getSeverity(), tr("Suspicious tag/value combinations"),
                             d.getDescription(), d.getDescriptionOrig(), d.getCode(), p) );
                     withErrors.put(p, "TC");
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 4022)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/validator/ValidatorTreePanel.java	(revision 4023)
@@ -236,5 +236,5 @@
                         msg = msgErrors.getKey() + " (" + errs.size() + ")";
                     } else {
-                        msg = bag.getKey() + " - " + msgErrors.getKey() + " (" + errs.size() + ")";
+                        msg = msgErrors.getKey() + " - " + bag.getKey() + " (" + errs.size() + ")";
                     }
                     DefaultMutableTreeNode messageNode = new DefaultMutableTreeNode(msg);
