diff --git a/dune/gfe/globalgeodesicfefunction.hh b/dune/gfe/globalgeodesicfefunction.hh
index e58f21bb94dd34ce9894972a9cea5b2981a7dbad..914c376dd86d3845c414bd26898f18bb5d2da5a4 100644
--- a/dune/gfe/globalgeodesicfefunction.hh
+++ b/dune/gfe/globalgeodesicfefunction.hh
@@ -13,10 +13,12 @@
  *
  *  \tparam Basis  - The global basis type.
  *  \tparam TargetSpace - The manifold that this functions takes its values in.
+ *  \tparam CoefficientType - The coefficient vector type.
  */
-template<class Basis, class TargetSpace>
+template<class Basis, class TargetSpace, class CoefficientType>
 GlobalGeodesicFEFunction {
 
+
     typedef typename Basis::LocalFiniteElement LocalFiniteElement;
     typedef typename Basis::GridView GridView;
     typedef typename GridView::template Codim<0>::Entity Element;
@@ -34,7 +36,7 @@ GlobalGeodesicFEFunction {
 public:
 
     //! Create global function by a global basis and the corresponding coefficient vector
-    GlobalGeodesicFEFunction(const Basis& basis, const std::vector<TargetSpace>& coefficients) :
+    GlobalGeodesicFEFunction(const Basis& basis, const CoefficientType& coefficients) :
         basis_(basis),
         coefficients_(coefficients)
     {}
@@ -78,6 +80,6 @@ private:
     //! The global basis
     const Basis& basis_;
     //! The coefficient vector
-    const std::vector<TargetSpace>& coefficients_;
+    const CoefficientType& coefficients_;
 };
 #endif
diff --git a/dune/gfe/globalgfetestfunctionbasis.hh b/dune/gfe/globalgfetestfunctionbasis.hh
index ffe83130a5cd86e3769f237cdbd85de964da0ca7..0b495d9deb4e3b837154e40c5b1363b87c14c14c 100644
--- a/dune/gfe/globalgfetestfunctionbasis.hh
+++ b/dune/gfe/globalgfetestfunctionbasis.hh
@@ -21,7 +21,7 @@ class LocalTestFunctionWrapper;
  *  The other LocalFiniteElement methods are not wrapped/implemented by now but it shouldn't be too difficult to do so when they are
  *  needed.
  */
-template <class Basis, class TargetSpace>
+template <class Basis, class TargetSpace, class CoefficientType>
 class GlobalGFETestFunctionBasis : public FunctionSpaceBasis<typename Basis::GridView, typename TargetSpace::EmbeddedTangentVector, LocalTestFunctionWrapper<typename Basis::LocalFiniteElement, TargetSpace> > {
 
 public:
@@ -37,7 +37,7 @@ private:
     const static int tangentDim = TargetSpace::TangentVector::dimension;
 
 public:
-    GlobalGFETestFunctionBasis(const Basis& basis, std::vector<TargetSpace>& baseCoefficients) :
+    GlobalGFETestFunctionBasis(const Basis& basis, const CoefficientType& baseCoefficients) :
         Base(basis.getGridView()),
         basis_(basis),
         baseCoefficients_(baseCoefficients),
@@ -89,7 +89,7 @@ private:
     //! The global basis determining the weights
     const Basis& basis_;
     //! The coefficients of the configuration the tangent spaces are from. */
-    const std::vector<TargetSpace>& baseCoefficients_; 
+    const CoefficientType& baseCoefficients_; 
     //! Save the last local finite element - do I need to do this?
     mutable LocalFiniteElement* lfe_;
 };