diff --git a/dune/gfe/rigidbodymotion.hh b/dune/gfe/rigidbodymotion.hh
index a68e796f2277b2ef07acac1dafb2e55b7ed8edd4..a039c1510c815afa2a1d54eedb6c8e167a22f00f 100644
--- a/dune/gfe/rigidbodymotion.hh
+++ b/dune/gfe/rigidbodymotion.hh
@@ -120,7 +120,8 @@ public:
             result[i] = a.r[i] - b.r[i];
 
         // Subtract orientations on the tangent space of 'a'
-        typename Rotation<ctype,N>::TangentVector v = Rotation<ctype,N>::difference(a.q, b.q).axial();
+        auto diffSkew = Rotation<ctype,N>::difference(b.q, a.q);
+        typename Rotation<ctype,N>::TangentVector v = Rotation<ctype, N>::skewToTangentVector(a.q, diffSkew);
 
         // Compute difference on T_a SO(3)
         for (int i=0; i<Rotation<ctype,N>::TangentVector::dimension; i++)