diff --git a/dune/solvers/iterationsteps/amgstep.hh b/dune/solvers/iterationsteps/amgstep.hh
index 18c782084a9430befc1a05c8fa15b46bb73f3abb..0ef950c1b5d77b3d92aef35abd0a4996e4fe8d26 100644
--- a/dune/solvers/iterationsteps/amgstep.hh
+++ b/dune/solvers/iterationsteps/amgstep.hh
@@ -76,9 +76,6 @@ public:
     /** \brief Perform one iteration */
     virtual void iterate();
 
-    /** \brief Get the solution */
-    virtual VectorType getSol();
-
     /** \brief Arguments for the smoother.  See the dune-istl documentation for details */
     SmootherArgs smootherArgs_;
 
@@ -109,10 +106,4 @@ void AMGStep<MatrixType,VectorType>::iterate()
     amg_->apply(*this->x_, residual_);
 }
 
-template <class MatrixType, class VectorType>
-VectorType AMGStep<MatrixType,VectorType>::getSol()
-{
-    return *this->x_;
-}
-
 #endif
diff --git a/dune/solvers/iterationsteps/blockgsstep.cc b/dune/solvers/iterationsteps/blockgsstep.cc
index 73b48c8ebcf509d7debdefdf81cd0072b5469f77..95115222bab1c57e6b52a1406ecbf59807cb1cae 100644
--- a/dune/solvers/iterationsteps/blockgsstep.cc
+++ b/dune/solvers/iterationsteps/blockgsstep.cc
@@ -3,13 +3,6 @@
 
 #include <cassert>
 
-template<class MatrixType, class DiscFuncType, class BitVectorType>
-inline
-DiscFuncType BlockGSStep<MatrixType, DiscFuncType, BitVectorType>::getSol()
-{
-    return *(this->x_);
-}
-
 template<class MatrixType, class DiscFuncType, class BitVectorType>
 inline
 void BlockGSStep<MatrixType, DiscFuncType, BitVectorType>::
diff --git a/dune/solvers/iterationsteps/blockgsstep.hh b/dune/solvers/iterationsteps/blockgsstep.hh
index 5858adcc4d2c156269b9b3ada8a7d9d426c6b307..c18c54f46f574b9c19337de43e9f3ee228a745d3 100644
--- a/dune/solvers/iterationsteps/blockgsstep.hh
+++ b/dune/solvers/iterationsteps/blockgsstep.hh
@@ -40,9 +40,6 @@ template<class MatrixType,
         //! Perform one iteration
         virtual void iterate();
 
-        //! Return the solution
-        virtual DiscFuncType getSol();
-
         /** \brief Compute the residual of the current iterate of a (block) degree of freedom
          *
          *  \param index Global index of the (block) degree of freedom
diff --git a/dune/solvers/iterationsteps/cgstep.hh b/dune/solvers/iterationsteps/cgstep.hh
index 14b63ef64674546d6d38342d45373025ba6fabd4..b794d896f72849fcc666e92f3eb2c5dd842578b1 100644
--- a/dune/solvers/iterationsteps/cgstep.hh
+++ b/dune/solvers/iterationsteps/cgstep.hh
@@ -46,8 +46,6 @@ namespace Dune {
             void check() const;
             void preprocess();
             void iterate();
-            // Q: do we really want this interface?
-            VectorType getSol() { return *x_; }
 
         private:
             VectorType p_; // search direction
diff --git a/dune/solvers/iterationsteps/istlseqilu0step.hh b/dune/solvers/iterationsteps/istlseqilu0step.hh
index 3409533e34ef0fc5e26548765e6ac00d165317d0..c6c49229c8c2422ce62056321d4e731725420a2f 100644
--- a/dune/solvers/iterationsteps/istlseqilu0step.hh
+++ b/dune/solvers/iterationsteps/istlseqilu0step.hh
@@ -57,9 +57,6 @@ public:
     /** \brief Perform one iteration */
     virtual void iterate();
 
-    /** \brief Get the solution */
-    virtual VectorType getSol();
-
 private:
 
     /** \brief The dune-istl sequential ILU0 preconditioner */
@@ -82,10 +79,4 @@ void ISTLSeqILU0Step<MatrixType,VectorType>::iterate()
     seqILU0_->apply(*this->x_,*this->rhs_);
 }
 
-template <class MatrixType, class VectorType>
-VectorType ISTLSeqILU0Step<MatrixType,VectorType>::getSol()
-{
-    return *this->x_;
-}
-
 #endif
diff --git a/dune/solvers/iterationsteps/lineariterationstep.hh b/dune/solvers/iterationsteps/lineariterationstep.hh
index a9d1e8c2a0bafdb726a8f9367bf3fbfd8049dc93..5791782d7dd1f932391c1e6ebeac27b3c57384d3 100644
--- a/dune/solvers/iterationsteps/lineariterationstep.hh
+++ b/dune/solvers/iterationsteps/lineariterationstep.hh
@@ -48,12 +48,6 @@ public:
     //! Do the actual iteration
     virtual void iterate() = 0;
 
-    //! Return solution object
-    virtual VectorType getSol()
-    {
-        return *(this->x_);
-    }
-
     //! Return linear operator
     virtual const MatrixType* getMatrix() {return mat_.get();}
 
@@ -77,7 +71,7 @@ public:
         this->x_ = &x;
         rhs_     = &r;
         iterate();
-        x = getSol();
+        x = this->getSol();
     }
 
     //! The container for the right hand side
diff --git a/dune/solvers/iterationsteps/linegsstep.cc b/dune/solvers/iterationsteps/linegsstep.cc
index 44951158e0322c4f370bcc5f5dfdf381140bba44..a3d0d6b87cdd978277782895ff7135d154375d09 100755
--- a/dune/solvers/iterationsteps/linegsstep.cc
+++ b/dune/solvers/iterationsteps/linegsstep.cc
@@ -3,14 +3,6 @@
 #include <dune/istl/btdmatrix.hh>
 #include <dune/istl/scaledidmatrix.hh>
 
-template<class MatrixType, class DiscFuncType, class BitVectorType>
-inline
-DiscFuncType LineGSStep<MatrixType, DiscFuncType, BitVectorType>::getSol()
-{
-
-    return *(this->x_);
-
-}
 
 
 template<class MatrixType, class DiscFuncType, class BitVectorType>
diff --git a/dune/solvers/iterationsteps/linegsstep.hh b/dune/solvers/iterationsteps/linegsstep.hh
index 7a3059ca1c6657062c5beaa3782938b433653ced..fc2a1cd33004c9a37b9e30818487557dcefa53eb 100755
--- a/dune/solvers/iterationsteps/linegsstep.hh
+++ b/dune/solvers/iterationsteps/linegsstep.hh
@@ -40,8 +40,6 @@ template<class MatrixType,
         //! Perform one iteration
         virtual void iterate();
 
-        virtual DiscFuncType getSol();
-
     };
 
 
diff --git a/dune/solvers/iterationsteps/minimalpolynomialextrapolationstep.hh b/dune/solvers/iterationsteps/minimalpolynomialextrapolationstep.hh
index d05acc6757e18cb36e7922cc07c8fb5625e3dc40..e23cb3ab903155c6b5c681de7c1c69263834a8b4 100644
--- a/dune/solvers/iterationsteps/minimalpolynomialextrapolationstep.hh
+++ b/dune/solvers/iterationsteps/minimalpolynomialextrapolationstep.hh
@@ -43,9 +43,6 @@ public:
     //! Perform one iteration
     virtual void iterate();
 
-    /** \brief Retrieve the solution */
-    virtual VectorType getSol();
-
     /** \brief To be called before starting to iterate
        \note This calls the preprocess method for the dependant iteration step class, too!
      */
@@ -64,13 +61,6 @@ public:
 
 };
 
-template<class VectorType, class BitVectorType>
-inline
-VectorType MinimalPolynomialExtrapolationStep<VectorType, BitVectorType>::getSol()
-{
-    return *(this->x_);
-}
-
 template<class VectorType, class BitVectorType>
 inline
 void MinimalPolynomialExtrapolationStep<VectorType, BitVectorType>::preprocess()
diff --git a/dune/solvers/iterationsteps/multigridstep.cc b/dune/solvers/iterationsteps/multigridstep.cc
index 6dee469fc192699b7ea4f7c2e05c22462ed8f9ec..a8d97ed04dc9656b942711448ef227ec79360c9f 100644
--- a/dune/solvers/iterationsteps/multigridstep.cc
+++ b/dune/solvers/iterationsteps/multigridstep.cc
@@ -16,13 +16,6 @@
 #include <dune/solvers/solvers/umfpacksolver.hh>
 #endif
 
-//template <class MatrixType, class VectorType, class BitVectorType>
-//VectorType MultigridStep<MatrixType, VectorType, BitVectorType>::
-//getSol()
-//{
-//    return *(this->x_);
-//}
-
 //template<class MatrixType, class VectorType, class BitVectorType>
 //inline
 //const MatrixType* MultigridStep<MatrixType, VectorType, BitVectorType>::
diff --git a/dune/solvers/iterationsteps/multigridstep.hh b/dune/solvers/iterationsteps/multigridstep.hh
index ed34da117e1fc49f9673720594ebce9cc53dd959..7c4a7c44bbaea32a0ac19f494f2fa1f605e75467 100644
--- a/dune/solvers/iterationsteps/multigridstep.hh
+++ b/dune/solvers/iterationsteps/multigridstep.hh
@@ -119,8 +119,6 @@
 
         virtual void postprocess();
 
-//        virtual VectorType getSol();
-
 //        virtual const MatrixType* getMatrix();
 
         /** \brief Return total number of levels of the multigrid hierarchy */
diff --git a/dune/solvers/iterationsteps/obstacletnnmgstep.hh b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
index 091ab2ca3b3f098719a8ba4a768f27fe8a51edc4..41e89e07281031238f78b71520a3b8fac9713682 100644
--- a/dune/solvers/iterationsteps/obstacletnnmgstep.hh
+++ b/dune/solvers/iterationsteps/obstacletnnmgstep.hh
@@ -315,15 +315,6 @@ class ObstacleTNNMGStep
         }
 
 
-        /**
-         * \brief Get the current iterate
-         */
-        VectorType getSol()
-        {
-            return *x_;
-        }
-
-
         /**
          * \brief Get output accumulated during last iterate() call.
          *
diff --git a/dune/solvers/iterationsteps/projectedgradientstep.hh b/dune/solvers/iterationsteps/projectedgradientstep.hh
index 11d2f756fe659068039eaa0a91f861643c6e67ca..0136a43e637ef1c7f16191592139dcb6130ac237 100644
--- a/dune/solvers/iterationsteps/projectedgradientstep.hh
+++ b/dune/solvers/iterationsteps/projectedgradientstep.hh
@@ -56,9 +56,6 @@ public:
         computeGeneralizedCP(negativeGradient);
     }
 
-    //! Return solution object
-    virtual VectorType getSol() {return *this->x_;}
-
     //! The obstacles
     const std::vector<BoxConstraint<field_type,blocksize> >* obstacles_;
 private:
diff --git a/dune/solvers/iterationsteps/richardsonstep.hh b/dune/solvers/iterationsteps/richardsonstep.hh
index 70ea82d4f258008b1c15d453671d8210a65fcc21..6cb34491c0d3150b557b0918deee2390a90ce92b 100644
--- a/dune/solvers/iterationsteps/richardsonstep.hh
+++ b/dune/solvers/iterationsteps/richardsonstep.hh
@@ -29,22 +29,12 @@ public:
     //! Perform one iteration
     virtual void iterate();
 
-    /** \brief Retrieve the solution */
-    virtual VectorType getSol();
-    
     const Preconditioner<VectorType>* preconditioner_;
 
     double damping_;
     
 };
 
-template<class VectorType, class BitVectorType>
-inline
-VectorType RichardsonStep<VectorType, BitVectorType>::getSol()
-{
-    return *(this->x_);
-}
-
 template<class VectorType, class BitVectorType>
 inline
 void RichardsonStep<VectorType, BitVectorType>::iterate()
diff --git a/dune/solvers/iterationsteps/truncatedblockgsstep.hh b/dune/solvers/iterationsteps/truncatedblockgsstep.hh
index 80d327f55e9b61d9eb82ca1b01bc76d98af04ab6..42511d8575f3693f6532b116f6d7e6e7b4b5ce5e 100644
--- a/dune/solvers/iterationsteps/truncatedblockgsstep.hh
+++ b/dune/solvers/iterationsteps/truncatedblockgsstep.hh
@@ -39,11 +39,6 @@ public:
         innerLoops_(innerLoops)
     {}
 
-    virtual VectorType getSol()
-    {
-        return *(this->x_);
-    }
-
     //! Perform one iteration
     virtual void iterate()
     {
@@ -161,11 +156,6 @@ public:
         localSolver(localSolver)
     {}
 
-    virtual VectorType getSol()
-    {
-        return *(this->x_);
-    }
-
     //! Perform one iteration
     virtual void iterate()
     {
diff --git a/dune/solvers/iterationsteps/truncatedsaddlepointgsstep.hh b/dune/solvers/iterationsteps/truncatedsaddlepointgsstep.hh
index 3ff0437d2b7ca05f06c59efbd9e40614e6dc29a2..b47d5922f9ccd016edf25e27eae7eea580de5b3f 100644
--- a/dune/solvers/iterationsteps/truncatedsaddlepointgsstep.hh
+++ b/dune/solvers/iterationsteps/truncatedsaddlepointgsstep.hh
@@ -26,11 +26,6 @@ public:
         : LinearIterationStep<MatrixType,VectorType>(mat, x, rhs)
     {}
 
-    virtual VectorType getSol()
-    {
-        return *(this->x_);
-    }
-
     //! Perform one iteration
     virtual void iterate()
     {
diff --git a/dune/solvers/iterationsteps/trustregiongsstep.cc b/dune/solvers/iterationsteps/trustregiongsstep.cc
index f06d68c3dcd175fc894051242226469940926de4..914d80402bc3f573366de4495d958741057809a6 100644
--- a/dune/solvers/iterationsteps/trustregiongsstep.cc
+++ b/dune/solvers/iterationsteps/trustregiongsstep.cc
@@ -1,13 +1,6 @@
 // -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
 // vi: set et ts=8 sw=4 sts=4:
 
-template<class MatrixType, class VectorType>
-inline
-VectorType TrustRegionGSStep<MatrixType, VectorType>::getSol()
-{
-    return *(this->x_);
-}
-
 template<class MatrixType, class VectorType>
 inline
 void TrustRegionGSStep<MatrixType, VectorType>::iterate()
diff --git a/dune/solvers/iterationsteps/trustregiongsstep.hh b/dune/solvers/iterationsteps/trustregiongsstep.hh
index 3cba0679e23d4c88dbb8f278fb5237791164045b..c855bbdd15db677379fccbee1cfca04569403879 100644
--- a/dune/solvers/iterationsteps/trustregiongsstep.hh
+++ b/dune/solvers/iterationsteps/trustregiongsstep.hh
@@ -33,9 +33,6 @@
 
         //! Perform one iteration
         virtual void iterate();
-
-        virtual VectorType getSol();
-
     };
 
 #include "trustregiongsstep.cc"