Index: src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 269)
+++ src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 271)
@@ -84,5 +84,6 @@
 				p.add(c, GBC.eol());
 				components.put(e.getKey(), c);
-			}
+			} else
+				newWay.put(e.getKey(), e.getValue().iterator().next());
 		}
 		if (!components.isEmpty()) {
Index: src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 269)
+++ src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 271)
@@ -106,10 +106,11 @@
 	}
 
-	public void setSelected(OsmPrimitive osm) {
+	public void setSelected(OsmPrimitive... osm) {
 		clearSelection();
-		if (osm == null)
+		if (osm.length == 0)
 			return;
-		osm.selected = true;
-		fireSelectionChanged(Arrays.asList(new OsmPrimitive[]{osm}));
+		for (OsmPrimitive o : osm)
+			o.selected = true;
+		fireSelectionChanged(Arrays.asList(osm));
 	}
 
