diff --git a/dune/solvers/iterationsteps/multigridstep.hh b/dune/solvers/iterationsteps/multigridstep.hh
index c4ce011e1dbd6e1337e1c2b2974a8bc4de5a9940..1617a79a5c5cafef7848b1af348daded7cc7f852 100644
--- a/dune/solvers/iterationsteps/multigridstep.hh
+++ b/dune/solvers/iterationsteps/multigridstep.hh
@@ -123,7 +123,7 @@ namespace Dune {
         {
             mgTransfer_.resize(transfer.size());
             for(size_t j=0; j<transfer.size(); ++j)
-                mgTransfer_[j] = Dune::stackobject_to_shared_ptr(*const_cast<DerivedTransfer*>(&transfer[j]));
+                mgTransfer_[j] = Dune::stackobject_to_shared_ptr(const_cast<DerivedTransfer&>(transfer[j]));
         }
 
         virtual void iterate();