diff --git a/dirneucoupling.cc b/dirneucoupling.cc
index 0dc6222b58e214999783125c42d1f68264fc7413..af825e1906bb43cc9aaaeb9d7e1ed8f2e8465e3a 100644
--- a/dirneucoupling.cc
+++ b/dirneucoupling.cc
@@ -430,7 +430,9 @@ int main (int argc, char *argv[]) try
             lambda.r[j] = (1-dirichletDamping) * lambda.r[j] 
                 + dirichletDamping * (referenceInterface.r[j] + averageInterface.r[j]);
 
-        lambda.q = Quaternion<double>::interpolate(lambda.q, averageInterface.q, dirichletDamping);
+        lambda.q = Quaternion<double>::interpolate(lambda.q, 
+                                                   referenceInterface.q.mult(averageInterface.q), 
+                                                   dirichletDamping);
 
         std::cout << "Lambda: " << lambda << std::endl;