Index: trunk/src/org/openstreetmap/josm/actions/CopyAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 2891)
+++ trunk/src/org/openstreetmap/josm/actions/CopyAction.java	(revision 2892)
@@ -6,4 +6,9 @@
 import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
 
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.ClipboardOwner;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
@@ -35,6 +40,22 @@
     public void actionPerformed(ActionEvent e) {
         if(isEmptySelection()) return;
+        Collection<OsmPrimitive> selection = getCurrentDataSet().getSelected();
 
-        Main.pasteBuffer.makeCopy(getCurrentDataSet().getSelected());
+        /* copy ids to the clipboard */
+        StringBuilder idsBuilder = new StringBuilder();
+        for (OsmPrimitive p : selection) {
+            idsBuilder.append(p.getId()+",");
+        }
+        String ids = idsBuilder.substring(0, idsBuilder.length() - 1);
+        try {
+            Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
+                    new StringSelection(ids.toString()), new ClipboardOwner() {
+                        public void lostOwnership(Clipboard clipboard, Transferable contents) {}
+                    }
+            );
+        }
+        catch (RuntimeException x) {}
+        
+        Main.pasteBuffer.makeCopy(selection);
         Main.pasteSource = getEditLayer();
         Main.main.menu.paste.setEnabled(true); /* now we have a paste buffer we can make paste available */
