Index: src/uk/me/parabola/mkgmap/build/MapBuilder.java
===================================================================
--- src/uk/me/parabola/mkgmap/build/MapBuilder.java	(revision 4905)
+++ src/uk/me/parabola/mkgmap/build/MapBuilder.java	(working copy)
@@ -113,6 +113,7 @@
 import uk.me.parabola.mkgmap.reader.osm.MultiPolygonRelation;
 import uk.me.parabola.mkgmap.reader.osm.Way;
 import uk.me.parabola.mkgmap.reader.overview.OverviewMapDataSource;
+import uk.me.parabola.mkgmap.reader.polish.PolishMapDataSource;
 import uk.me.parabola.util.Configurable;
 import uk.me.parabola.util.EnhancedProperties;
 import uk.me.parabola.util.Java2DConverter;
@@ -556,11 +557,20 @@
 
 			MapRoad road = (MapRoad) line;
 			road.resetImgData();
-
-			City roadCity = calcCity(lbl, cityName, cityRegionName, cityCountryName);
-			if (roadCity != null)
-				road.addRoadCity(roadCity);
-
+			// handle special case in polish (mp) format: multiple city names may be separated by @
+			boolean splitCityNames = cityName != null && (src instanceof PolishMapDataSource);
+			if (splitCityNames) {
+				String[] cityNames = cityName.split("@");
+				for (String cn : cityNames) {
+					City roadCity = calcCity(lbl, cn, cityRegionName, cityCountryName);
+					if (roadCity != null)
+						road.addRoadCity(roadCity);
+				}
+			} else {
+				City roadCity = calcCity(lbl, cityName, cityRegionName, cityCountryName);
+				if (roadCity != null)
+					road.addRoadCity(roadCity);
+			}
 			if (zipStr != null) {
 				road.addRoadZip(lbl.createZip(zipStr));
 			}
Index: src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java
===================================================================
--- src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java	(revision 4905)
+++ src/uk/me/parabola/mkgmap/reader/polish/PolishMapDataSource.java	(working copy)
@@ -475,7 +475,7 @@
 			roadHelper.setRoadId(Integer.parseInt(value));
 		} else if (name.startsWith("Nod")) {
 			roadHelper.addNode(value);
-		} else if ("RouteParam".equals(name) || "RouteParams".equals(name)) {
+		} else if ("RouteParam".equalsIgnoreCase(name) || "RouteParams".equalsIgnoreCase(name)) {
 			roadHelper.setParam(value);
 		} else if ("DirIndicator".equals(name)) {
 			polyline.setDirection(Integer.parseInt(value) > 0);
