diff --git a/dune/solvers/iterationsteps/multigridstep.hh b/dune/solvers/iterationsteps/multigridstep.hh
index a8b91086afe91ca39e49001aca43bf101a693a1e..170a7bb0f8085fce025280fc3731c5ade6fc886a 100644
--- a/dune/solvers/iterationsteps/multigridstep.hh
+++ b/dune/solvers/iterationsteps/multigridstep.hh
@@ -155,6 +155,20 @@
                 mgTransfer_[j] = transfer[j];
         }
 
+        /**
+         * \brief Set transfer operator hierarchy from vector of shared_ptr's.
+         *
+         * Be care full: The Multigrid step does currently not share ownership
+         * afterwards. This may change in the future.
+         */
+        template <class DerivedTransfer>
+        void setTransferOperators(const std::vector<typename Dune::shared_ptr<DerivedTransfer> >& transfer)
+        {
+            mgTransfer_.resize(transfer.size());
+            for(size_t j=0; j<transfer.size(); ++j)
+                mgTransfer_[j] = transfer[j].get();
+        }
+
         virtual void iterate();
 
         virtual void nestedIteration();