Index: /trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java	(revision 15592)
+++ /trunk/src/org/openstreetmap/josm/gui/io/importexport/GpxImporter.java	(revision 15593)
@@ -113,5 +113,5 @@
         } catch (SAXException e) {
             Logging.error(e);
-            throw new IOException(tr("Parsing data for layer ''{0}'' failed", fileName), e);
+            throw new IOException(e.getLocalizedMessage(), e);
         }
     }
Index: /trunk/src/org/openstreetmap/josm/io/GpxReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/GpxReader.java	(revision 15592)
+++ /trunk/src/org/openstreetmap/josm/io/GpxReader.java	(revision 15593)
@@ -645,12 +645,21 @@
             if (tryToFinish) {
                 parser.tryToFinish();
-                if (parser.data.isEmpty())
-                    throw e;
-                String message = e.getMessage();
+                String message = e.getLocalizedMessage();
                 if (e instanceof SAXParseException) {
+                    boolean dot = message.lastIndexOf('.') == message.length() - 1;
+                    if (dot)
+                        message = message.substring(0, message.length() - 1);
                     SAXParseException spe = (SAXParseException) e;
                     message += ' ' + tr("(at line {0}, column {1})", spe.getLineNumber(), spe.getColumnNumber());
-                }
-                Logging.warn(message);
+                    if (dot)
+                        message += '.';
+                }
+                if (parser.data.creator != null && !parser.data.creator.trim().isEmpty()) {
+                    message += "\n" + tr("The file was created by \"{0}\".", parser.data.creator);
+                }
+                SAXException ex = new SAXException(message, e);
+                if (parser.data.isEmpty())
+                    throw ex;
+                Logging.warn(ex);
                 return false;
             } else
