diff --git a/dune/solvers/iterationsteps/choleskystep.hh b/dune/solvers/iterationsteps/choleskystep.hh
index 2a2157b354a589060e4aa69687f7044d7ede9eef..b556c5d6db6d713fcfa2237cfad04fa08f51cb3e 100644
--- a/dune/solvers/iterationsteps/choleskystep.hh
+++ b/dune/solvers/iterationsteps/choleskystep.hh
@@ -301,7 +301,7 @@ public:
       1. Gy  = b
       2. G'x = y
     */
-    Vector y(G.N());
+    Vector y = *this->x_;
     BitVector const *ignore = this->hasIgnore() ? &this->ignore() : nullptr;
     Dune::MatrixVector::lowerTriangularSolve(G, *this->rhs_, y, ignore);
     Dune::MatrixVector::upperTriangularSolve(G, y, *this->x_, ignore, true);