diff --git a/dune/solvers/iterationsteps/iterationstep.hh b/dune/solvers/iterationsteps/iterationstep.hh
index 2d3202e91829165d5b9104855423443668f19716..5c1f14d0f45cbbbe3a368cc3c95f1cb6c61520f3 100644
--- a/dune/solvers/iterationsteps/iterationstep.hh
+++ b/dune/solvers/iterationsteps/iterationstep.hh
@@ -15,6 +15,8 @@ template<class VectorType, class BitVectorType = Dune::BitSetVector<VectorType::
 class IterationStep : virtual public NumProc, public CanIgnore<BitVectorType>
     {
     public:
+        typedef VectorType Vector;
+        typedef BitVectorType BitVector;
 
         //! Default constructor
         IterationStep()
@@ -39,6 +41,18 @@ class IterationStep : virtual public NumProc, public CanIgnore<BitVectorType>
         //! Do the actual iteration
         virtual void iterate() = 0;
 
+        //! Access the stored pointer to iterate
+        virtual const Vector* getIterate() const
+        {
+            return x_;
+        }
+
+        //! Access the stored pointer to iterate
+        virtual Vector* getIterate()
+        {
+            return x_;
+        }
+
         //! Return solution object
         virtual VectorType getSol() = 0;