  }
  
  /**
-@@ -979,11 +963,11 @@ clutter_behaviour_ellipse_set_angle_tiltx (ClutterBehaviourEllipse *self,
-                                            ClutterFixed             angle_tilt)
- {
-   ClutterBehaviourEllipsePrivate *priv;
--  ClutterAngle new_angle;
-+  float new_angle;
+@@ -983,7 +967,7 @@ clutter_behaviour_ellipse_set_angle_tiltx (ClutterBehaviourEllipse *self,
  
    g_return_if_fail (CLUTTER_IS_BEHAVIOUR_ELLIPSE (self));
  

diff --git a/clutter/clutter-behaviour-ellipse.c b/clutter/clutter-behaviour-ellipse.c
index b9f493b..5524032 100644
--- a/clutter/clutter-behaviour-ellipse.c
+++ b/clutter/clutter-behaviour-ellipse.c
@@ -86,11 +86,11 @@ struct _ClutterBehaviourEllipsePrivate
   gint         a;
   gint         b;
 
-  ClutterAngle angle_start;
-  ClutterAngle angle_end;
-  ClutterAngle angle_tilt_x;
-  ClutterAngle angle_tilt_y;
-  ClutterAngle angle_tilt_z;
+  float        angle_start;
+  float        angle_end;
+  float        angle_tilt_x;
+  float        angle_tilt_y;
+  float        angle_tilt_z;
 
   ClutterRotateDirection direction;
 };
@@ -104,7 +104,7 @@ typedef struct _knot3d
 
 static void
 clutter_behaviour_ellipse_advance (ClutterBehaviourEllipse *e,
-                                   ClutterAngle             angle,
+                                   float                    angle,
                                    knot3d                  *knot)
 {
   ClutterBehaviourEllipsePrivate *priv = e->priv;
@@ -187,20 +187,16 @@ actor_apply_knot_foreach (ClutterBehaviour *behave,
     clutter_actor_set_depth (actor, knot->z);
 }
 
-static inline ClutterAngle
-clamp_angle (ClutterAngle a)
+static float
+clamp_angle (float a)
 {
-  ClutterAngle a1, a2;
   gint rounds;
+  
+  rounds = a / 360;
+  if (a < 0)
+    rounds--;
 
-  /* Need to add the 256 offset here, since the user space 0 maps to our
-   * -256

-  rounds = (a + 256) / 1024;
-  a1 = rounds * 1024;
-  a2 = a - a1;
+  rounds = a / 360;
+  if (a < 0)
+    rounds--;
 
-  return a2;
+  return a - 360 * rounds;
 }
 
 static void
@@ -218,11 +214,11 @@ clutter_behaviour_ellipse_alpha_notify (ClutterBehaviour *behave,
 
   if (priv->direction == CLUTTER_ROTATE_CW && start >= end)
