diff --git a/dune/matrix-vector/triangularsolve.hh b/dune/matrix-vector/triangularsolve.hh
index 4d7c42e8a42969ddfb86e9e82ab6928c87473a86..5d21f49693648f9faeb09076517b7ae6fb7c097c 100644
--- a/dune/matrix-vector/triangularsolve.hh
+++ b/dune/matrix-vector/triangularsolve.hh
@@ -37,7 +37,7 @@ namespace MatrixVector {
           // Note: We could drop the check for ignore nodes here bcs. b[j] will
           // be ignored anyway due to the check above.
           if (ignore == nullptr or (*ignore)[j].none())
-            b[j] -= x[i] * *cIt;
+            cIt->mmv(x[i], b[j]);
         }
       }
     } else {