diff --git a/dune/gfe/mixedriemanniantrsolver.cc b/dune/gfe/mixedriemanniantrsolver.cc
index 6a88c89460cd54351c55772c4505faa7b7dcfd65..3a0931c37194a474f1f137a202973a641a99fa79 100644
--- a/dune/gfe/mixedriemanniantrsolver.cc
+++ b/dune/gfe/mixedriemanniantrsolver.cc
@@ -100,7 +100,7 @@ setup(const GridType& grid,
                                                                                    baseNorm0,
                                                                                    Solver::QUIET);
 
-    ::LoopSolver<CorrectionType0>* baseSolver1 = new ::LoopSolver<CorrectionType1>(baseSolverStep1,
+    ::LoopSolver<CorrectionType1>* baseSolver1 = new ::LoopSolver<CorrectionType1>(baseSolverStep1,
                                                                                    baseIterations,
                                                                                    baseTolerance,
                                                                                    baseNorm1,
diff --git a/dune/gfe/mixedriemanniantrsolver.hh b/dune/gfe/mixedriemanniantrsolver.hh
index 197388783636b2427c11172d5cfb546e5f36d8c3..aafe7b3fc79bbd70d5929ee5127ed6c589db8075 100644
--- a/dune/gfe/mixedriemanniantrsolver.hh
+++ b/dune/gfe/mixedriemanniantrsolver.hh
@@ -82,11 +82,11 @@ public:
 
     void setScaling(const Dune::FieldVector<double,blocksize0+blocksize1>& scaling)
     {
-      for (int i=0; i<3; i++)
-      {
+      for (int i=0; i<blocksize0; i++)
         std::get<0>(scaling_)[i] = scaling[i];
-        std::get<1>(scaling_)[i] = scaling[i+3];
-      }
+
+      for (int i=0; i<blocksize1; i++)
+        std::get<1>(scaling_)[i] = scaling[i+blocksize0];
     }
 
 #if 0
@@ -124,7 +124,7 @@ protected:
     double initialTrustRegionRadius_;
 
     /** \brief Trust-region norm scaling */
-    std::tuple<Dune::FieldVector<double,3>, Dune::FieldVector<double,3> > scaling_;
+    std::tuple<Dune::FieldVector<double,blocksize0>, Dune::FieldVector<double,blocksize1> > scaling_;
 
     /** \brief Maximum number of trust-region steps */
     int maxTrustRegionSteps_;