diff --git a/test/fdcheck.hh b/test/fdcheck.hh
index 9184cc5a719cacf2b054ae35c6e933350ed37bf0..342d8752bb9167ada1925e137e81a4e94af50c2d 100644
--- a/test/fdcheck.hh
+++ b/test/fdcheck.hh
@@ -10,10 +10,12 @@ void infinitesimalVariation(RigidBodyMotion<3>& c, double eps, int i)
 {
     if (i<3)
         c.r[i] += eps;
-    else
-        c.q = c.q.mult(Rotation<3,double>::exp((i==3)*eps, 
-                                               (i==4)*eps, 
-                                               (i==5)*eps));
+    else {
+        Dune::FieldVector<double,3> axial(0);
+        axial[i-3] = eps;
+        SkewMatrix<double,3> variation(axial);
+        c.q = c.q.mult(Rotation<3,double>::exp(variation));
+    }
 }
 
 template <class GridType>