diff --git a/Graphics/Trackball.cpp b/Graphics/Trackball.cpp
index f24e76243b88f1dc82936264468c81a0392a2096..f3ff4c3d13c684649bfa6623319773ab56aa1127 100644
--- a/Graphics/Trackball.cpp
+++ b/Graphics/Trackball.cpp
@@ -192,8 +192,11 @@ trackball(double q[4], double p1x, double p1y, double p2x, double p2y)
    *  Figure out how much to rotate around that axis.
    */
   vsub(p1,p2,d);
-  t = vlength(d);
- 
+  if (CTX::instance()->trackballHyperbolicSheet)
+    t = vlength(d) / (2.0*TRACKBALLSIZE);
+  else
+    t = vlength(d);
+    
   /*
    * Avoid problems with out-of-control values...
    */