diff --git a/dune/gfe/geodesicfeassembler.hh b/dune/gfe/geodesicfeassembler.hh
index 5924b8a4802242426993c60975bb3ba25c52b973..a76ffe7f324e331f46eff9dc65a25c279b296a5e 100644
--- a/dune/gfe/geodesicfeassembler.hh
+++ b/dune/gfe/geodesicfeassembler.hh
@@ -22,7 +22,7 @@ class GeodesicFEAssembler {
     enum { gridDim = GridView::dimension };
     
     //! Dimension of a tangent space
-    enum { blocksize = TargetSpace::TangentVector::size };
+    enum { blocksize = TargetSpace::EmbeddedTangentVector::size };
     
     //!
     typedef Dune::FieldMatrix<double, blocksize, blocksize> MatrixBlock;
diff --git a/dune/gfe/localgeodesicfestiffness.hh b/dune/gfe/localgeodesicfestiffness.hh
index c491b6fd9c5c8d625a7c9adde21880e4aa2989b2..49e4631dac7846f1f76a3a488f3bbc18ec4148f1 100644
--- a/dune/gfe/localgeodesicfestiffness.hh
+++ b/dune/gfe/localgeodesicfestiffness.hh
@@ -309,7 +309,7 @@ assemble(const Entity& element,
 /** \brief Specialization for unit vectors */
 template<class GridView, int dim>
 class LocalGeodesicFEStiffness <GridView,UnitVector<dim> >
-    : public Dune::LocalStiffness<GridView,double,UnitVector<dim>::TangentVector::size>
+    : public Dune::LocalStiffness<GridView,double,UnitVector<dim>::EmbeddedTangentVector::size>
 {
     typedef UnitVector<dim> TargetSpace;
 
@@ -333,7 +333,7 @@ class LocalGeodesicFEStiffness <GridView,UnitVector<dim> >
 public:
     
     //! Each block is x, y, theta in 2d, T (R^3 \times SO(3)) in 3d
-    enum { blocksize = TargetSpace::TangentVector::size };
+    enum { blocksize = TargetSpace::EmbeddedTangentVector::size };
 
     // define the number of components of your system, this is used outside
     // to allocate the correct size of (dense) blocks with a FieldMatrix
diff --git a/dune/gfe/riemanniantrsolver.hh b/dune/gfe/riemanniantrsolver.hh
index 7c1ec683a6fcd1ed177a88ed6cc4b2921001b4ba..4fd20899690929ba0faaf20d0a5d260eb2e4c992 100644
--- a/dune/gfe/riemanniantrsolver.hh
+++ b/dune/gfe/riemanniantrsolver.hh
@@ -18,9 +18,9 @@
 template <class GridType, class TargetSpace>
 class RiemannianTrustRegionSolver 
     : public IterativeSolver<std::vector<TargetSpace>,
-                             Dune::BitSetVector<TargetSpace::TangentVector::size> >
+                             Dune::BitSetVector<TargetSpace::EmbeddedTangentVector::size> >
 { 
-    const static int blocksize = TargetSpace::TangentVector::size;
+    const static int blocksize = TargetSpace::EmbeddedTangentVector::size;
 
     const static int gridDim = GridType::dimension;
 
diff --git a/dune/gfe/targetspacertrsolver.hh b/dune/gfe/targetspacertrsolver.hh
index 87219999723e26c763e288742f2fcfcd523b7f15..cf2ede95f6fb25005f7335df2a8f9fa74c0f40f6 100644
--- a/dune/gfe/targetspacertrsolver.hh
+++ b/dune/gfe/targetspacertrsolver.hh
@@ -13,7 +13,7 @@ class TargetSpaceRiemannianTRSolver
 //     : public IterativeSolver<std::vector<TargetSpace>,
 //                             Dune::BitSetVector<TargetSpace::TangentVector::size> >
 { 
-    const static int blocksize = TargetSpace::TangentVector::size;
+    const static int blocksize = TargetSpace::EmbeddedTangentVector::size;
 
     // Centralize the field type here
     typedef double field_type;
diff --git a/dune/gfe/unitvector.hh b/dune/gfe/unitvector.hh
index 059d99daaa6db5d32591a20dfb210abb4fe6a5bd..98d4553f8402250581d187668c59c67f4730c881 100644
--- a/dune/gfe/unitvector.hh
+++ b/dune/gfe/unitvector.hh
@@ -39,7 +39,7 @@ public:
     /** \brief The type used for coordinates */
     typedef double ctype;
 
-    typedef Dune::FieldVector<double,dim> TangentVector;
+    typedef Dune::FieldVector<double,dim-1> TangentVector;
     typedef Dune::FieldVector<double,dim> EmbeddedTangentVector;
 
     UnitVector<dim>& operator=(const Dune::FieldVector<double,dim>& vector)
@@ -50,7 +50,7 @@ public:
     }
 
      /** \brief The exponential map */
-    static UnitVector exp(const UnitVector& p, const TangentVector& v) {
+    static UnitVector exp(const UnitVector& p, const EmbeddedTangentVector& v) {
 
         assert( std::abs(p.data_*v) < 1e-5 );
 
diff --git a/harmonicmaps.cc b/harmonicmaps.cc
index c7915287996fefdd9d2bf757e6809768bffc277b..7d529c9d17fae47b4fc3654d357268595333d351 100644
--- a/harmonicmaps.cc
+++ b/harmonicmaps.cc
@@ -45,7 +45,7 @@ typedef RealTuple<1> TargetSpace;
 #endif
 
 // Tangent vector of the image space
-const int blocksize = TargetSpace::TangentVector::size;
+const int blocksize = TargetSpace::EmbeddedTangentVector::size;
 
 using namespace Dune;