Wheel rotation only working on one axis

I am trying to do a simple rig where a wheel/cylinder rotates when its parent empty is moved on the other axis on the same plane.

If the axis of cylinder rotation is the y axis, then I lock off the other to axis on that object and add a single driver on the it, using the average value type in the driver settings. I then add the parented empty to the driver and select the other axis (in this case x) and when I move the empty on the x then it works fine. But if I rotate that cylinder 90 on the z so that its rotation axis is then on the X and the direction of travel is on the Y (and change the locks and driver settings accordingly) it will not work and will instead rotate on Z when I move??? Even when I add a new cylinder it just wont do it.
Any ideas please, its such a silly issue but this is driving me crazy!


Have you tried applying the rotation?