Index: src/uk/me/parabola/mkgmap/reader/osm/bin/OsmBinHandler.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/bin/OsmBinHandler.java	(revision 3420)
+++ src/uk/me/parabola/mkgmap/reader/osm/bin/OsmBinHandler.java	(working copy)
@@ -70,7 +70,7 @@
 					Node node = new Node(id, co);
 					for (int tid = 0; tid < tagCount; tid++) {
 						String key = getStringById(binNode.getKeys(tid));
-						String val = getStringById(binNode.getVals(tid));
+						String val = getStringById(binNode.getVals(tid)).trim();
 						key = keepTag(key, val);
 						if (key != null)
 							node.addTag(key, val.intern());
@@ -105,7 +105,7 @@
 						int keyid = nodes.getKeysVals(kvid++);
 						int valid = nodes.getKeysVals(kvid++);
 						String key = getStringById(keyid);
-						String val = getStringById(valid);
+						String val = getStringById(valid).trim();
 						key = keepTag(key, val);
 						if (key != null) {
 							if (node == null)
@@ -132,7 +132,7 @@
 				for (int j = 0; j < binWay.getKeysCount(); j++) {
 
 					String key = getStringById(binWay.getKeys(j));
-					String val = getStringById(binWay.getVals(j));
+					String val = getStringById(binWay.getVals(j)).trim();
 					key = keepTag(key, val);
 					if (key != null)
 						way.addTag(key, val.intern());
@@ -157,7 +157,7 @@
 				boolean tagsIncomplete = false;
 				for (int j = 0; j < binRel.getKeysCount(); j++) {
 					String key = getStringById(binRel.getKeys(j));
-					String val = getStringById(binRel.getVals(j));
+					String val = getStringById(binRel.getVals(j)).trim();
 					// type is required for relations - all other tags are filtered
 					if ("type".equals(key))
 						// intern the string
Index: src/uk/me/parabola/mkgmap/reader/osm/o5m/O5mBinHandler.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/o5m/O5mBinHandler.java	(revision 3420)
+++ src/uk/me/parabola/mkgmap/reader/osm/o5m/O5mBinHandler.java	(working copy)
@@ -314,7 +314,7 @@
 		while (bytesToRead > 0){
 			readStringPair();
 			String key = stringPair[0];
-			String val = stringPair[1];
+			String val = stringPair[1].trim();
 			// the type tag is required for relations - all other tags are filtered
 			if (elem instanceof Relation && "type".equals(key))
 				// intern the string
Index: src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java	(revision 3420)
+++ src/uk/me/parabola/mkgmap/reader/osm/xml/Osm5XmlHandler.java	(working copy)
@@ -207,7 +207,7 @@
 	private void startInNode(String qName, Attributes attributes) {
 		if (qName.equals("tag")) {
 			String key = attributes.getValue("k");
-			String val = attributes.getValue("v");
+			String val = attributes.getValue("v").trim();
 
 			// We only want to create a full node for nodes that are POI's
 			// and not just one point of a way.  Only create if it has tags that
@@ -235,7 +235,7 @@
 			addCoordToWay(currentWay, id);
 		} else if (qName.equals("tag")) {
 			String key = attributes.getValue("k");
-			String val = attributes.getValue("v");
+			String val = attributes.getValue("v").trim();
 			key = keepTag(key, val);
 			if (key != null)
 				currentWay.addTag(key, val.intern());
@@ -276,7 +276,7 @@
 				currentRelation.addElement(attributes.getValue("role"), el);
 		} else if (qName.equals("tag")) {
 			String key = attributes.getValue("k");
-			String val = attributes.getValue("v");
+			String val = attributes.getValue("v").trim();
 			// the type tag is required for relations - all other tags are filtered
 			if ("type".equals(key))
 				// intern the key
