diff --git a/harmonicmaps-eoc.cc b/harmonicmaps-eoc.cc
index 1974c7e65a0d90b66514ea7b66f8d89130d9e011..5eff072d6c2a0972f4d9dfb4e1a4f87592e633c0 100644
--- a/harmonicmaps-eoc.cc
+++ b/harmonicmaps-eoc.cc
@@ -179,7 +179,7 @@ void solve (const shared_ptr<GridType>& grid,
     //   Solve!
     // /////////////////////////////////////////////////////
 
-    solver.setInitialSolution(x);
+    solver.setInitialIterate(x);
     solver.solve();
 
     x = solver.getSol();
@@ -265,8 +265,8 @@ int main (int argc, char *argv[]) try
 
     OperatorAssembler<FEBasis,FEBasis> operatorAssembler(referenceBasis, referenceBasis);
 
-    LaplaceAssembler<GridType, FEBasis::LocalFiniteElement, FEBasis::LocalFiniteElement> laplaceLocalAssembler(2*(order-1));
-    MassAssembler<GridType, FEBasis::LocalFiniteElement, FEBasis::LocalFiniteElement> massMatrixLocalAssembler(2*order);
+    LaplaceAssembler<GridType, FEBasis::LocalFiniteElement, FEBasis::LocalFiniteElement> laplaceLocalAssembler;
+    MassAssembler<GridType, FEBasis::LocalFiniteElement, FEBasis::LocalFiniteElement> massMatrixLocalAssembler;
 
     typedef Dune::BCRSMatrix<Dune::FieldMatrix<double,1,1> > ScalarMatrixType;
     ScalarMatrixType laplace, massMatrix;
diff --git a/harmonicmaps.cc b/harmonicmaps.cc
index c29afd7c04643ca2d287ea65384586f66557ee12..a4008adfda1bdcf9fdd1ca4e53e1089d559fb724 100644
--- a/harmonicmaps.cc
+++ b/harmonicmaps.cc
@@ -259,7 +259,7 @@ int main (int argc, char *argv[]) try
     std::cout << "Energy: " << assembler.computeEnergy(x) << std::endl;
     //exit(0);
 
-    solver.setInitialSolution(x);
+    solver.setInitialIterate(x);
     solver.solve();
 
     x = solver.getSol();
diff --git a/rod3d.cc b/rod3d.cc
index bda26e07afc103ca021c21ccf6b3b63f2041f0a7..b2184a06ee518be7b2042f5330d4bc906ec7694b 100644
--- a/rod3d.cc
+++ b/rod3d.cc
@@ -74,7 +74,7 @@ int main (int argc, char *argv[]) try
     //   Initial solution
     // //////////////////////////
 
-    for (int i=0; i<x.size(); i++) {
+    for (size_t i=0; i<x.size(); i++) {
         x[i].r[0] = 0;
         x[i].r[1] = 0;
         x[i].r[2] = double(i)/(x.size()-1);
@@ -158,7 +158,7 @@ int main (int argc, char *argv[]) try
 
     std::cout << "Energy: " << rodAssembler.computeEnergy(x) << std::endl;
     
-    rodSolver.setInitialSolution(x);
+    rodSolver.setInitialIterate(x);
     rodSolver.solve();
 
     x = rodSolver.getSol();
@@ -217,7 +217,7 @@ int main (int argc, char *argv[]) try
         FILE* fp = fopen(iSolFilename, "rb");
         if (!fp)
             DUNE_THROW(IOError, "Couldn't open intermediate solution '" << iSolFilename << "'");
-        for (int j=0; j<intermediateSolution.size(); j++) {
+        for (size_t j=0; j<intermediateSolution.size(); j++) {
             fread(&intermediateSolution[j].r, sizeof(double), 3, fp);
             fread(&intermediateSolution[j].q, sizeof(double), 4, fp);
         }