Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ErrorTreePanel.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ErrorTreePanel.java	(revision 21439)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ErrorTreePanel.java	(revision 21440)
@@ -221,5 +221,5 @@
                         msg = msgErrors.getKey() + " (" + errors.size() + ")";
                     else
-                        msg = msgErrors.getKey() + " - " + bag.getKey() + " (" + errors.size() + ")";
+                        msg = bag.getKey() + " - " + msgErrors.getKey() + " (" + errors.size() + ")";
                     DefaultMutableTreeNode messageNode = new DefaultMutableTreeNode(msg);
                     if (groupNode != null)
Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/TagChecker.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/TagChecker.java	(revision 21439)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/TagChecker.java	(revision 21440)
@@ -139,4 +139,6 @@
     protected static int INVALID_HTML      = 1206;
     protected static int PAINT             = 1207;
+    protected static int LONG_VALUE        = 1208;
+    protected static int LONG_KEY          = 1209;
     /** 1250 and up is used by tagcheck */
 
@@ -472,4 +474,16 @@
             String key = prop.getKey();
             String value = prop.getValue();
+            if( checkValues && (value!=null && value.length() > 255) && !withErrors.contains(p, "LV"))
+            {
+                errors.add( new TestError(this, Severity.ERROR, tr("Tag value longer than allowed"),
+                        tr(s, key), MessageFormat.format(s, key), LONG_VALUE, p) );
+                withErrors.add(p, "LV");
+            }
+            if( checkKeys && (value!=null && key.length() > 255) && !withErrors.contains(p, "LK"))
+            {
+                errors.add( new TestError(this, Severity.ERROR, tr("Tag key longer than allowed"),
+                        tr(s, key), MessageFormat.format(s, key), LONG_KEY, p) );
+                withErrors.add(p, "LK");
+            }
             if( checkValues && (value==null || value.trim().length() == 0) && !withErrors.contains(p, "EV"))
             {
