Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 6477)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 6478)
@@ -11,4 +11,5 @@
 import java.util.List;
 import java.util.Set;
+import java.util.TreeSet;
 import java.util.concurrent.CopyOnWriteArrayList;
 
@@ -402,5 +403,13 @@
         int idx = index;
         for (OsmPrimitive primitive : primitives) {
-            final String role = presets.isEmpty() ? null : presets.iterator().next().suggestRoleForOsmPrimitive(primitive);
+            Set<String> potentialRoles = new TreeSet<String>();
+            for (TaggingPreset tp : presets) {
+                String suggestedRole = tp.suggestRoleForOsmPrimitive(primitive);
+                if (suggestedRole != null) {
+                    potentialRoles.add(suggestedRole);
+                }
+            }
+            // TODO: propose user to choose role among potential ones instead of picking first one
+            final String role = potentialRoles.isEmpty() ? null : potentialRoles.iterator().next();
             RelationMember member = new RelationMember(role == null ? "" : role, primitive);
             members.add(idx++, member);
