diff --git a/CMakeLists.txt b/CMakeLists.txt
index c100ed5845098bce27c98c525e086042daa9fc81..52c35295f8813de68b5cd6de2916fa9a04eca08c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -843,17 +843,25 @@ if(HAVE_SOLVER)
   endif(ENABLE_TAUCS)
 
   if(ENABLE_MUMPS)
+    find_library(DMUMPS_LIB smumps PATH_SUFFIXES lib)
     find_library(DMUMPS_LIB dmumps PATH_SUFFIXES lib)
+    find_library(ZMUMPS_LIB cmumps PATH_SUFFIXES lib)
     find_library(ZMUMPS_LIB zmumps PATH_SUFFIXES lib)
+    find_path(DMUMPS_INC "smumps_c.h" PATH_SUFFIXES src include)
     find_path(DMUMPS_INC "dmumps_c.h" PATH_SUFFIXES src include)
+    find_path(ZMUMPS_INC "cmumps_c.h" PATH_SUFFIXES src include)
     find_path(ZMUMPS_INC "zmumps_c.h" PATH_SUFFIXES src include)
-    if(DMUMPS_LIB AND DMUMPS_INC AND ZMUMPS_LIB AND ZMUMPS_INC)
+    if(SMUMPS_LIB AND SMUMPS_INC AND 
+       DMUMPS_LIB AND DMUMPS_INC AND
+       CMUMPS_LIB AND CMUMPS_INC AND
+       ZMUMPS_LIB AND ZMUMPS_INC)
         set_config_option(HAVE_MUMPS "MUMPS")
+        add_definitions(-DGMM_USES_MUMPS)
         list(APPEND EXTERNAL_LIBRARIES ${DMUMPS_LIB})
         list(APPEND EXTERNAL_INCLUDES ${DMUMPS_INC})
         list(APPEND EXTERNAL_LIBRARIES ${ZMUMPS_LIB})
         list(APPEND EXTERNAL_INCLUDES ${ZMUMPS_INC})
-      endif(DMUMPS_LIB AND DMUMPS_INC AND ZMUMPS_LIB AND ZMUMPS_INC)
+    endif(DMUMPS_LIB AND DMUMPS_INC AND ZMUMPS_LIB AND ZMUMPS_INC)
   endif(ENABLE_MUMPS)
 
   if(ENABLE_PETSC)