diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc
index 2d752db3ac3d4c1ff5d2c041b9bfc8d1ba9a7c0f..1d75dd1cd717ca6cb5d87f102ff81bec0c7f1b0c 100644
--- a/src/cosserat-continuum.cc
+++ b/src/cosserat-continuum.cc
@@ -416,7 +416,8 @@ int main (int argc, char *argv[]) try
     std::vector<TargetSpace> initialIterate;
     GFE::CosseratVTKReader::read(initialIterate, parameterSet.get<std::string>("initialIterateFilename"));
 
-    typedef Dune::Functions::LagrangeBasis<typename GridType::LeafGridView, 2> InitialBasis;
+    // At this point, displacementOrder == rotationOrder
+    typedef Functions::LagrangeBasis<typename GridType::LeafGridView, displacementOrder> InitialBasis;
     InitialBasis initialBasis(initialIterateGrid->leafGridView());
 
 #ifdef PROJECTED_INTERPOLATION
@@ -431,8 +432,7 @@ int main (int argc, char *argv[]) try
         lagrange<displacementOrder>()
         ));
     std::vector<FieldVector<double,7> > v;
-    //TODO: Interpolate does not work with an GFE:EmbeddedGlobalGFEFunction
-    //Dune::Functions::interpolate(powerBasis,v,initialFunction);
+    Functions::interpolate(powerBasis,v,initialFunction);
 
     for (size_t i=0; i<x.size(); i++) {
       auto vTargetSpace = TargetSpace(v[i]);