Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/OpeningHourTest.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/OpeningHourTest.java	(revision 17590)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/OpeningHourTest.java	(revision 17591)
@@ -11,10 +11,11 @@
 import java.util.Locale;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 import javax.swing.JCheckBox;
 import javax.swing.JPanel;
 
+import ch.poole.openinghoursparser.OpeningHoursParseException;
 import ch.poole.openinghoursparser.OpeningHoursParser;
-import ch.poole.openinghoursparser.ParseException;
 import ch.poole.openinghoursparser.Rule;
 import ch.poole.openinghoursparser.Util;
@@ -106,6 +107,10 @@
                 new OpeningHoursParser(new StringReader(value)).rules(true);
             }
-        } catch (ParseException e) {
-            return Collections.singletonList(createTestError(Severity.WARNING, e.getMessage(), key, value, prettifiedValue, p));
+        } catch (OpeningHoursParseException e) {
+            String message = e.getExceptions().stream()
+                    .map(OpeningHoursParseException::getMessage)
+                    .distinct()
+                    .collect(Collectors.joining("; "));
+            return Collections.singletonList(createTestError(Severity.WARNING, message, key, value, prettifiedValue, p));
         }
 
Index: /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java	(revision 17590)
+++ /trunk/test/unit/org/openstreetmap/josm/data/validation/tests/OpeningHourTestTest.java	(revision 17591)
@@ -90,7 +90,7 @@
                 checkOpeningHourSyntax(key, value, Locale.ENGLISH).get(0).getDescription());
         value = "Mon-Thu 12-18";
-        assertEquals("Wochentag mit 3 Buchstaben in Zeile 1, Spalte 4",
+        assertEquals("Wochentag mit 3 Buchstaben in Zeile 1, Spalte 4; Wochentag mit 3 Buchstaben in Zeile 1, Spalte 9; Stunden ohne Minuten",
                 checkOpeningHourSyntax(key, value, Locale.GERMAN).get(0).getDescription());
-        assertEquals("Three character weekday at line 1, column 4",
+        assertEquals("Three character weekday at line 1, column 4; Three character weekday at line 1, column 9; Hours without minutes",
                 checkOpeningHourSyntax(key, value, Locale.ENGLISH).get(0).getDescription());
     }
@@ -118,5 +118,5 @@
         assertThat(errors, hasSize(1));
         assertFixEquals("Sa-Su 10:00-20:00", errors.get(0));
-        assertEquals("Invalid minutes at line 1, column 12", errors.get(0).getDescription());
+        assertEquals("Invalid minutes at line 1, column 12; Invalid minutes at line 1, column 17", errors.get(0).getDescription());
         assertEquals(Severity.WARNING, errors.get(0).getSeverity());
     }
@@ -145,5 +145,7 @@
                 checkOpeningHourSyntax(key, "badtext").get(0).getDescription().trim());
         assertThat(checkOpeningHourSyntax(key, "5.00 p.m-11.00 p.m"), hasSize(1));
-        assertEquals(String.format("Encountered:  <UNEXPECTED_CHAR> \"p \" at line 1, column 3%nWas expecting: <EOF>"),
+        assertEquals(String.format("Encountered:  <UNEXPECTED_CHAR> \"p \" at line 1, column 3%nWas expecting: <EOF>; " +
+                        "Encountered:  <UNEXPECTED_CHAR> \"p \" at line 1, column 13%n" +
+                        "Was expecting: <EOF>"),
                 checkOpeningHourSyntax(key, "5.00 p.m-11.00 p.m").get(0).getDescription());
     }
