Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 18766)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 18767)
@@ -24,4 +24,5 @@
 
 import javax.swing.JOptionPane;
+import javax.swing.SwingUtilities;
 
 import org.openstreetmap.josm.actions.MergeNodesAction;
@@ -480,9 +481,4 @@
     @Override
     public void mouseMoved(MouseEvent e) {
-        // Mac OSX simulates with ctrl + mouse 1 the second mouse button hence no dragging events get fired.
-        if (PlatformManager.isPlatformOsx() && (mode == Mode.ROTATE || mode == Mode.SCALE)) {
-            mouseDragged(e);
-            return;
-        }
         oldEvent = e;
         if (giveUserFeedback(e)) {
@@ -571,5 +567,5 @@
             virtualManager.createMiddleNodeFromVirtual(currentEN);
         } else {
-            if (!updateCommandWhileDragging(currentEN)) return;
+            if (!updateCommandWhileDragging(e, currentEN)) return;
         }
 
@@ -713,8 +709,9 @@
      * Create or update data modification command while dragging mouse - implementation of
      * continuous moving, scaling and rotation
+     * @param mouseEvent The triggering mouse event
      * @param currentEN - mouse position
      * @return status of action (<code>true</code> when action was performed)
      */
-    private boolean updateCommandWhileDragging(EastNorth currentEN) {
+    private boolean updateCommandWhileDragging(MouseEvent mouseEvent, EastNorth currentEN) {
         // Currently we support only transformations which do not affect relations.
         // So don't add them in the first place to make handling easier
@@ -789,5 +786,5 @@
             startEN = currentEN; // drag can continue after scaling/rotation
 
-            if (mode != Mode.ROTATE && mode != Mode.SCALE) {
+            if (mode != Mode.ROTATE && mode != Mode.SCALE || SwingUtilities.isRightMouseButton(mouseEvent)) {
                 return false;
             }
