diff --git a/dune/istl/superlufunctions.hh b/dune/istl/superlufunctions.hh
index 53cc9c567fa7a0ad6ac08701cbab2652c1842700..ef307d4d3956ca6708feb4a0cf752acabe6a2493 100644
--- a/dune/istl/superlufunctions.hh
+++ b/dune/istl/superlufunctions.hh
@@ -58,6 +58,13 @@ extern "C" {
 #endif
 
 #if __has_include("slu_cdefs.h")
+#ifndef SUPERLU_TYPEDEF_COMPLEX
+// Per default SuperLU >= 7.0.0. does not provide
+// a type complex anymore. By setting SUPERLU_TYPEDEF_COMPLEX
+// we tell SuperLU to define complex to be the same as the
+// new type singlecomplex
+#define SUPERLU_TYPEDEF_COMPLEX
+#endif
 #include "slu_scomplex.h"
 
 extern "C" {