Index: /trunk/src/org/openstreetmap/josm/io/OsmReader.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 7868)
+++ /trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 7869)
@@ -454,12 +454,15 @@
                 version = Integer.parseInt(versionString);
             } catch(NumberFormatException e) {
-                throwException(tr("Illegal value for attribute ''version'' on OSM primitive with ID {0}. Got {1}.", Long.toString(current.getUniqueId()), versionString), e);
+                throwException(tr("Illegal value for attribute ''version'' on OSM primitive with ID {0}. Got {1}.",
+                        Long.toString(current.getUniqueId()), versionString), e);
             }
             switch (ds.getVersion()) {
             case "0.6":
                 if (version <= 0 && !current.isNew()) {
-                    throwException(tr("Illegal value for attribute ''version'' on OSM primitive with ID {0}. Got {1}.", Long.toString(current.getUniqueId()), versionString));
+                    throwException(tr("Illegal value for attribute ''version'' on OSM primitive with ID {0}. Got {1}.",
+                            Long.toString(current.getUniqueId()), versionString));
                 } else if (version < 0 && current.isNew()) {
-                    Main.warn(tr("Normalizing value of attribute ''version'' of element {0} to {2}, API version is ''{3}''. Got {1}.", current.getUniqueId(), version, 0, "0.6"));
+                    Main.warn(tr("Normalizing value of attribute ''version'' of element {0} to {2}, API version is ''{3}''. Got {1}.",
+                            current.getUniqueId(), version, 0, "0.6"));
                     version = 0;
                 }
@@ -554,5 +557,9 @@
             if (getLocation() == null)
                 return msg;
-            msg = msg + " " + tr("(at line {0}, column {1})", getLocation().getLineNumber(), getLocation().getColumnNumber());
+            msg += " " + tr("(at line {0}, column {1})", getLocation().getLineNumber(), getLocation().getColumnNumber());
+            int offset = getLocation().getCharacterOffset();
+            if (offset > -1) {
+                msg += ". "+ tr("{0} bytes have been read", offset);
+            }
             return msg;
         }
Index: /trunk/src/org/openstreetmap/josm/tools/Utils.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 7868)
+++ /trunk/src/org/openstreetmap/josm/tools/Utils.java	(revision 7869)
@@ -13,5 +13,4 @@
 import java.awt.datatransfer.Transferable;
 import java.awt.datatransfer.UnsupportedFlavorException;
-import java.io.BufferedInputStream;
 import java.io.BufferedReader;
 import java.io.Closeable;
@@ -763,6 +762,5 @@
             return null;
         }
-        BufferedInputStream bis = new BufferedInputStream(in);
-        return new BZip2CompressorInputStream(bis, /* see #9537 */ true);
+        return new BZip2CompressorInputStream(in, /* see #9537 */ true);
     }
 
