Index: src/org/openstreetmap/josm/actions/JosmAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/JosmAction.java	(revision 998)
+++ src/org/openstreetmap/josm/actions/JosmAction.java	(working copy)
@@ -1,6 +1,7 @@
 // License: GPL. Copyright 2007 by Immanuel Scholz and others
 package org.openstreetmap.josm.actions;
 
+import java.awt.event.InputEvent;
 
 import javax.swing.AbstractAction;
 import javax.swing.JComponent;
@@ -28,6 +29,21 @@
 	public JosmAction(String name, String iconName, String tooltip, int shortCut, int modifier, boolean register) {
 		super(name, iconName == null ? null : ImageProvider.get(iconName));
 		setHelpId();
+		if (Main.withOSXIntegration) {
+			// actually using Event.CTRL_MASK is wrong, we should use
+			// Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
+			// instead. But I don't want to change too many files, so
+			// just swap CTRL and META when on OSX...
+			if ((modifier & InputEvent.CTRL_MASK) != 0) {
+				modifier = (modifier & ~ InputEvent.CTRL_MASK) | InputEvent.META_MASK;
+			} else if ((modifier & InputEvent.META_MASK) != 0) {
+				modifier = (modifier & ~ InputEvent.META_MASK) | InputEvent.CTRL_MASK;
+			} else if ((modifier & InputEvent.CTRL_DOWN_MASK) != 0) {
+				modifier = (modifier & ~ InputEvent.CTRL_DOWN_MASK) | InputEvent.META_DOWN_MASK;
+			} else if ((modifier & InputEvent.META_DOWN_MASK) != 0) {
+				modifier = (modifier & ~ InputEvent.META_DOWN_MASK) | InputEvent.CTRL_DOWN_MASK;
+			}
+		}
 		String scl = ShortCutLabel.name(shortCut, modifier);
 		putValue(SHORT_DESCRIPTION, "<html>"+tooltip+" <font size='-2'>"+scl+"</font>"+(scl.equals("")?"":"&nbsp;")+"</html>");
 		if (shortCut != 0) {
