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,8 +29,27 @@
 	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);
+		if (Main.withOSXIntegration) {
+			putValue(SHORT_DESCRIPTION, tooltip+(scl.equals("")?"":" ("+scl+")")); // no html as tooltip goes native
+		} else {
 		putValue(SHORT_DESCRIPTION, "<html>"+tooltip+" <font size='-2'>"+scl+"</font>"+(scl.equals("")?"":"&nbsp;")+"</html>");
+		}
 		if (shortCut != 0) {
 			this.shortCut = KeyStroke.getKeyStroke(shortCut, modifier);
 			Main.contentPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(this.shortCut, name);
