diff --git a/dune/solvers/iterationsteps/multigridstep.hh b/dune/solvers/iterationsteps/multigridstep.hh
index 7b22bf088c10f1e9a58e4ba31c7cf5daeebb9719..a1dce7d69107da85a98459cd02dcfe5d486cbfb9 100644
--- a/dune/solvers/iterationsteps/multigridstep.hh
+++ b/dune/solvers/iterationsteps/multigridstep.hh
@@ -153,7 +153,8 @@ namespace Dune {
         virtual void setMGType(int mu, int nu1, int nu2);
 
         /** \brief Set the smoother iteration step */
-        virtual void setSmoother(LinearStepType* smoother)
+        DUNE_DEPRECATED_MSG("Consider setting the smoother via smart pointer, reference or temporaries instead.")
+        void setSmoother(LinearStepType* smoother)
         {
             presmootherDefault_ = postsmootherDefault_ = Dune::stackobject_to_shared_ptr(*smoother);
 
@@ -170,8 +171,9 @@ namespace Dune {
         }
 
         /** \brief Set pre- and post smoothers individually */
-        virtual void setSmoother(LinearStepType* preSmoother,
-                                 LinearStepType* postSmoother)
+        DUNE_DEPRECATED_MSG("Consider setting the smoother via smart pointer, reference or temporaries instead.")
+        void setSmoother(LinearStepType* preSmoother,
+                         LinearStepType* postSmoother)
         {
             presmootherDefault_  = Dune::stackobject_to_shared_ptr(*preSmoother);
             postsmootherDefault_ = Dune::stackobject_to_shared_ptr(*postSmoother);
@@ -188,7 +190,8 @@ namespace Dune {
         }
 
         /** \brief Set the smoother iteration step for a particular level */
-        virtual void setSmoother(LinearStepType* smoother, std::size_t level)
+        DUNE_DEPRECATED_MSG("Consider setting the smoother via smart pointer, reference or temporaries instead.")
+        void setSmoother(LinearStepType* smoother, std::size_t level)
         {
             levelWiseSmoothers_[level] = Dune::stackobject_to_shared_ptr(*smoother);
         }