diff --git a/dune/gfe/adolcnamespaceinjections.hh b/dune/gfe/adolcnamespaceinjections.hh
index df89097b4c013c0caf6cbb2ce953dfe9c338e1ad..8540dcbe8311f6e5675095c971d6f6a2fb38f64c 100644
--- a/dune/gfe/adolcnamespaceinjections.hh
+++ b/dune/gfe/adolcnamespaceinjections.hh
@@ -3,14 +3,6 @@
 
 #include <limits>
 
-adouble min_hack(const adouble& a, const adouble& b) {
-    return fmin(a,b);
-}
-
-adouble max_hack(const adouble& a, const adouble& b) {
-    return fmax(a,b);
-}
-
 adouble sqrt_hack(adouble a) {
   return sqrt(a);
 }
@@ -43,11 +35,13 @@ adouble acos_hack(adouble a) {
 namespace std
 {
    adouble min(adouble a, adouble b) {
-      return min_hack(a,b);
+     // Do not use 'min', because ADOL-C lacks support for that in vector-mode
+     return  (a + b - abs_hack(a - b))*0.5;
    }
 
    adouble max(adouble a, adouble b) {
-      return max_hack(a,b);
+     // Do not use 'max', because ADOL-C lacks support for that in vector-mode
+     return - min(-a,-b);
    }
 
    adouble sqrt(adouble a) {