diff --git a/dune/istl/superlu.hh b/dune/istl/superlu.hh
index aabec43865546b299fb65d6f98fb8deccd7654b5..32251214c3aa5d623697461cac63b18bff439889 100644
--- a/dune/istl/superlu.hh
+++ b/dune/istl/superlu.hh
@@ -724,5 +724,36 @@ namespace Dune
   };
 }
 
+// undefine macros from SuperLU's slu_util.h
+#undef FIRSTCOL_OF_SNODE
+#undef NO_MARKER
+#undef NUM_TEMPV
+#undef USER_ABORT
+#undef USER_MALLOC
+#undef SUPERLU_MALLOC
+#undef USER_FREE
+#undef SUPERLU_FREE
+#undef CHECK_MALLOC
+#undef SUPERLU_MAX
+#undef SUPERLU_MIN
+#undef L_SUB_START
+#undef L_SUB
+#undef L_NZ_START
+#undef L_FST_SUPC
+#undef U_NZ_START
+#undef U_SUB
+#undef TRUE
+#undef FALSE
+#undef EMPTY
+#undef NODROP
+#undef DROP_BASIC
+#undef DROP_PROWS
+#undef DROP_COLUMN
+#undef DROP_AREA
+#undef DROP_SECONDARY
+#undef DROP_DYNAMIC
+#undef DROP_INTERP
+#undef MILU_ALPHA
+
 #endif // HAVE_SUPERLU
 #endif // DUNE_SUPERLU_HH