diff --git a/cmake/modules/FindSuperLU.cmake b/cmake/modules/FindSuperLU.cmake
index 77d72cf6a3947d4bdb7faff35fe386c1198b6a7e..a8038bde961668e85d02bb0f56475c6fa3d37b1b 100644
--- a/cmake/modules/FindSuperLU.cmake
+++ b/cmake/modules/FindSuperLU.cmake
@@ -30,10 +30,22 @@ find_library(SUPERLU_LIBRARY
   PATH_SUFFIXES "lib" "lib64"
 )
 
-# check if version is 4.3
+# check version specific macros
 include(CheckCSourceCompiles)
 set(CMAKE_REQUIRED_INCLUDES ${SUPERLU_INCLUDE_DIR})
 set(CMAKE_REQUIRED_LIBRARIES ${SUPERLU_LIBRARY})
+
+# check whether "mem_usage_t.expansions" was found in "slu_ddefs.h"
+CHECK_C_SOURCE_COMPILES("
+#include <slu_ddefs.h>
+int main(void)
+{
+  mem_usage_t mem;
+  return mem.expansions;
+}"
+HAVE_MEM_USAGE_T_EXPANSIONS)
+
+# check whether version is at least 4.3
 CHECK_C_SOURCE_COMPILES("
 #include <slu_ddefs.h>
 int main(void)
diff --git a/config.h.cmake b/config.h.cmake
index 8ea26e8a745f1f3799dd31f1f996c7dc71fc2b31..990c118165c6275891e34015f64ec4a71635598e 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -45,6 +45,9 @@
 /* define to 1 because older versions of SuperLU are no longer supported*/
 #define SUPERLU_POST_2005_VERSION 1
 
+/* Define to 1 if 'expansions' is a member of 'mem_usage_t'. */
+#cmakedefine HAVE_MEM_USAGE_T_EXPANSIONS @HAVE_MEM_USAGE_T_EXPANSIONS@
+
 /* define to 1 if SuperLU header slu_ddefs.h contains SLU_DOUBLE */
 #cmakedefine SUPERLU_MIN_VERSION_4_3 @SUPERLU_MIN_VERSION_4_3@