diff --git a/dune/gfe/productmanifold.hh b/dune/gfe/productmanifold.hh
index 408b11bbbab648564e54950e3619b7d3402c8afd..52f2a848e8fbed74a6fd376d4c4820f8ee27ab3b 100644
--- a/dune/gfe/productmanifold.hh
+++ b/dune/gfe/productmanifold.hh
@@ -10,9 +10,14 @@
 #include <dune/common/tuplevector.hh>
 
 #include <dune/gfe/linearalgebra.hh>
+#include <dune/gfe/symmetricmatrix.hh>
+#include <dune/gfe/tensor3.hh>
 
 namespace Dune::GFE
 {
+  template <typename ... TargetSpaces>
+  class ProductManifold;
+
   namespace Impl
   {
     template<typename T, typename ... Ts>
@@ -24,9 +29,6 @@ namespace Dune::GFE
         return T::convexityRadius;
     }
 
-    template <typename TS, typename ... TargetSpaces>
-    class ProductManifold;
-
     template<class U,typename Tfirst,typename ... TargetSpaces2>
     struct rebindHelper
     {
diff --git a/test/targetspacetest.cc b/test/targetspacetest.cc
index cea7382c03b2361660487a408401ba17e9c755b5..8302b86d9cc924bc883034b51fbb749e25c18edf 100644
--- a/test/targetspacetest.cc
+++ b/test/targetspacetest.cc
@@ -370,6 +370,11 @@ void test()
         
     }
     
+    // Test whether we can rebind to another number type
+    using FTargetSpace = typename TargetSpace::template rebind<float>::other;
+
+    // Can we construct an object of that rebound type?
+    FTargetSpace fTargetSpace;
 }