Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1633)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 1634)
@@ -56,5 +56,5 @@
  */
 public class SelectAction extends MapMode implements SelectionEnded {
-
+    public static boolean needMouseMove = false;
     enum Mode { move, rotate, select }
     private Mode mode = null;
@@ -156,10 +156,10 @@
         if ((mode == Mode.move) && (System.currentTimeMillis() - mouseDownTime < initialMoveDelay)) return;
 
-        if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) == 0)
-            return;
-
-        if (mode == Mode.move) {
+        if(mode != Mode.rotate) // button is pressed in rotate mode
+            if ((e.getModifiersEx() & MouseEvent.BUTTON1_DOWN_MASK) == 0)
+                return;
+
+        if (mode == Mode.move)
             setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
-        }
 
         if (mousePos == null) {
@@ -246,4 +246,13 @@
 
         didMove = true;
+    }
+
+    /**
+     * Mac OSX simulates with  ctrl + mouse 1  the second mouse button hence no dragging events get fired.
+     *
+     */
+    @Override public void mouseMoved(MouseEvent e) {
+        if (needMouseMove && mode == Mode.rotate)
+            mouseDragged(e);
     }
 
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 1633)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHookOsx.java	(revision 1634)
@@ -2,12 +2,14 @@
 package org.openstreetmap.josm.tools;
 
-import org.openstreetmap.josm.tools.Shortcut;
+import java.awt.event.KeyEvent;
+import java.io.IOException;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+import javax.swing.UIManager;
+
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.tools.PlatformHookUnixoid;
-
-import java.awt.event.KeyEvent;
-import java.lang.reflect.*;
-import java.io.IOException;
-import javax.swing.UIManager;
+import org.openstreetmap.josm.actions.mapmode.SelectAction;
 
 /**
@@ -40,4 +42,7 @@
             System.out.println("Failed to register with OSX: " + ex);
         }
+
+        // Ctrl + mouse 1 is suppressing mouseDragged events
+        SelectAction.needMouseMove = true;
     }
     public Object invoke (Object proxy, Method method, Object[] args) throws Throwable {
