diff --git a/dune/solvers/iterationsteps/cgstep.hh b/dune/solvers/iterationsteps/cgstep.hh
index b28be65563f44916e57f1fb375958bf1f0114b4a..d05854f993c87e541f0a3f5a42246899765ccd7d 100644
--- a/dune/solvers/iterationsteps/cgstep.hh
+++ b/dune/solvers/iterationsteps/cgstep.hh
@@ -31,7 +31,7 @@ namespace Dune {
                    VectorType& x,
                    const VectorType& rhs,
                    Preconditioner<MatrixType, VectorType>& preconditioner)
-                : Base(x), p_(rhs.size()), r_(rhs), matrix_(matrix),
+                : Base(x), p_(rhs.size()), r_(rhs), matrix_(stackobject_to_shared_ptr(matrix)),
                   preconditioner_(&preconditioner)
             {}