diff --git a/dune/gfe/rotation.hh b/dune/gfe/rotation.hh
index b4e2fce9b25d8e8706195575e0dae1aa2a061af0..42d6c24d5962452258d364c745054e8fddb1d0cc 100644
--- a/dune/gfe/rotation.hh
+++ b/dune/gfe/rotation.hh
@@ -605,7 +605,7 @@ public:
             // Make sure we do the right thing if a and b are not in the same sheet
             // of the double covering of the unit quaternions over SO(3)
             if (dist>=M_PI) {
-                dist -= M_PI;
+                dist = 2*M_PI - dist;
                 diff *= -1;
             }