diff --git a/dune/gfe/maxnormtrustregion.hh b/dune/gfe/maxnormtrustregion.hh
index 69a1aef91a297df6710ecaa44590ed8e8d5e4553..d03b81cdfaa612dfd7a4a29985478272648b8695 100644
--- a/dune/gfe/maxnormtrustregion.hh
+++ b/dune/gfe/maxnormtrustregion.hh
@@ -5,18 +5,18 @@
 
 #include <dune/solvers/common/boxconstraint.hh>
 
-template <int blocksize>
+template <int blocksize, class field_type=double>
 class MaxNormTrustRegion
 {
 public:
 
-    MaxNormTrustRegion(size_t size, double initialRadius)
+    MaxNormTrustRegion(size_t size, field_type initialRadius)
         : obstacles_(size)
     {
         set(initialRadius);
     }
 
-    void set(double radius) {
+    void set(field_type radius) {
 
         for (size_t i=0; i<obstacles_.size(); i++) {
 
@@ -31,13 +31,13 @@ public:
 
     }
 
-    double radius() const {
+    field_type radius() const {
         assert(obstacles_.size()>0);
         assert(blocksize>0);
         return obstacles_[0].upper(0);
     }
 
-    void scale(double factor) {
+    void scale(field_type factor) {
 
         for (size_t i=0; i<obstacles_.size(); i++) {
 
@@ -52,13 +52,13 @@ public:
 
     }
 
-    const std::vector<BoxConstraint<double,blocksize> >& obstacles() const {
+    const std::vector<BoxConstraint<field_type,blocksize> >& obstacles() const {
         return obstacles_;
     }
 
 private:
 
-    std::vector<BoxConstraint<double,blocksize> > obstacles_;
+    std::vector<BoxConstraint<field_type,blocksize> > obstacles_;
 
 };