diff --git a/dune/solvers/iterationsteps/cgstep.hh b/dune/solvers/iterationsteps/cgstep.hh
index 97f9e9be94440be3875cf830369dfbf404fe3b58..12e9dbb74c0e624969ed430d7e0821091f74b329 100644
--- a/dune/solvers/iterationsteps/cgstep.hh
+++ b/dune/solvers/iterationsteps/cgstep.hh
@@ -12,6 +12,9 @@ namespace Dune {
         class CGStep : public IterationStep<VectorType>
         {
         public:
+            CGStep()
+            {}
+
             CGStep(const MatrixType& matrix,
                    VectorType& x,
                    const VectorType& rhs)
@@ -27,6 +30,14 @@ namespace Dune {
                   preconditioner_(&preconditioner)
             {}
 
+            //! Set linear operator, solution and right hand side
+            virtual void setProblem(const MatrixType& mat, VectorType& x, const VectorType& rhs)
+            {
+                matrix_ = mat;
+                x_ = x;
+                r_ = rhs;
+            }
+
             void check() const;
             void preprocess();
             void iterate();