Index: trunk/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java	(revision 9710)
+++ trunk/src/org/openstreetmap/josm/gui/datatransfer/PrimitiveTransferable.java	(revision 9711)
@@ -19,7 +19,26 @@
 
     /**
-     * Data flavor for {@link PrimitiveData}.
+     * A wrapper for a collection of {@link PrimitiveData}.
      */
-    public static final DataFlavor PRIMITIVE_DATA = new DataFlavor(PrimitiveData.class, PrimitiveData.class.getName());
+    public static final class Data {
+        private final Collection<PrimitiveData> primitiveData;
+
+        private Data(Collection<PrimitiveData> primitiveData) {
+            this.primitiveData = primitiveData;
+        }
+
+        /**
+         * Returns the contained {@link PrimitiveData}
+         * @return the contained {@link PrimitiveData}
+         */
+        public Collection<PrimitiveData> getPrimitiveData() {
+            return primitiveData;
+        }
+    }
+
+    /**
+     * Data flavor for {@link PrimitiveData} which is wrapped in {@link Data}.
+     */
+    public static final DataFlavor PRIMITIVE_DATA = new DataFlavor(Data.class, Data.class.getName());
     private final Collection<? extends OsmPrimitive> primitives;
 
@@ -47,5 +66,5 @@
             return getStringData();
         } else if (PRIMITIVE_DATA.equals(flavor)) {
-            return getRelationMemberData();
+            return getPrimitiveData();
         }
         throw new UnsupportedFlavorException(flavor);
@@ -63,10 +82,10 @@
     }
 
-    protected Collection<PrimitiveData> getRelationMemberData() {
+    protected Data getPrimitiveData() {
         final Collection<PrimitiveData> r = new ArrayList<>(primitives.size());
         for (OsmPrimitive primitive : primitives) {
             r.add(primitive.save());
         }
-        return r;
+        return new Data(r);
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferable.java	(revision 9710)
+++ trunk/src/org/openstreetmap/josm/gui/datatransfer/RelationMemberTransferable.java	(revision 9711)
@@ -19,7 +19,26 @@
 
     /**
-     * Data flavor for {@link RelationMemberData}.
+     * A wrapper for a collection of {@link RelationMemberData}.
      */
-    public static final DataFlavor RELATION_MEMBER_DATA = new DataFlavor(RelationMemberData.class, RelationMemberData.class.getName());
+    public static final class Data {
+        private final Collection<RelationMemberData> relationMemberDatas;
+
+        private Data(Collection<RelationMemberData> primitiveData) {
+            this.relationMemberDatas = primitiveData;
+        }
+
+        /**
+         * Returns the contained {@link RelationMemberData}
+         * @return the contained {@link RelationMemberData}
+         */
+        public Collection<RelationMemberData> getRelationMemberData() {
+            return relationMemberDatas;
+        }
+    }
+
+    /**
+     * Data flavor for {@link RelationMemberData} which is wrapped in {@link Data}.
+     */
+    public static final DataFlavor RELATION_MEMBER_DATA = new DataFlavor(Data.class, Data.class.getName());
     private final Collection<RelationMember> members;
 
@@ -64,10 +83,10 @@
     }
 
-    protected Collection<RelationMemberData> getRelationMemberData() {
+    protected Data getRelationMemberData() {
         final Collection<RelationMemberData> r = new ArrayList<>(members.size());
         for (RelationMember member : members) {
             r.add(new RelationMemberData(member.getRole(), member.getType(), member.getUniqueId()));
         }
-        return r;
+        return new Data(r);
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTransferHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTransferHandler.java	(revision 9710)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTransferHandler.java	(revision 9711)
@@ -64,9 +64,7 @@
     protected void importRelationMemberData(TransferSupport support, final MemberTable destination, int insertRow)
             throws UnsupportedFlavorException, IOException {
-        //noinspection unchecked
-        @SuppressWarnings("unchecked")
-        final Collection<RelationMemberData> memberData = (Collection<RelationMemberData>)
+        final RelationMemberTransferable.Data memberData = (RelationMemberTransferable.Data)
                 support.getTransferable().getTransferData(RelationMemberTransferable.RELATION_MEMBER_DATA);
-        importData(destination, insertRow, memberData, new Function<RelationMemberData, RelationMember>() {
+        importData(destination, insertRow, memberData.getRelationMemberData(), new Function<RelationMemberData, RelationMember>() {
             @Override
             public RelationMember apply(RelationMemberData member) {
@@ -84,9 +82,7 @@
     protected void importPrimitiveData(TransferSupport support, final MemberTable destination, int insertRow)
             throws UnsupportedFlavorException, IOException {
-        //noinspection unchecked
-        @SuppressWarnings("unchecked")
-        final Collection<PrimitiveData> data = (Collection<PrimitiveData>)
+        final PrimitiveTransferable.Data data = (PrimitiveTransferable.Data)
                 support.getTransferable().getTransferData(PrimitiveTransferable.PRIMITIVE_DATA);
-        importData(destination, insertRow, data, new Function<PrimitiveData, RelationMember>() {
+        importData(destination, insertRow, data.getPrimitiveData(), new Function<PrimitiveData, RelationMember>() {
             @Override
             public RelationMember apply(PrimitiveData data) {
