diff --git a/CMakeLists.txt b/CMakeLists.txt
index b5d51e2be5fe9ad95e94a42fd5116ed18b08ff05..a6e222bffc70ad37d4134281f4c41a8f3ee8c24b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -529,17 +529,15 @@ endif(ENABLE_OPTHOM)
 
 if(ENABLE_KBIPACK)
   find_library(GMP_LIB gmp)
-  if(GMP_LIB)
-    find_path(GMP_INC "gmp.h" PATH_SUFFIXES src include)
-    if(GMP_INC)
-      set_config_option(HAVE_GMP "GMP")
-      list(APPEND EXTERNAL_LIBRARIES ${GMP_LIB})
-      list(APPEND EXTERNAL_INCLUDES ${GMP_INC})
-      add_subdirectory(contrib/kbipack)
-      include_directories(contrib/kbipack)
-      set_config_option(HAVE_KBIPACK "Kbipack")
-    endif(GMP_INC)
-  endif(GMP_LIB)
+  find_path(GMP_INC "gmp.h" PATH_SUFFIXES src include)
+  if(GMP_LIB AND GMP_INC)
+    set_config_option(HAVE_GMP "GMP")
+    list(APPEND EXTERNAL_LIBRARIES ${GMP_LIB})
+    list(APPEND EXTERNAL_INCLUDES ${GMP_INC})
+    add_subdirectory(contrib/kbipack)
+    include_directories(contrib/kbipack)
+    set_config_option(HAVE_KBIPACK "Kbipack")
+  endif(GMP_LIB AND GMP_INC)
 endif(ENABLE_KBIPACK)
 
 if(ENABLE_MATHEX)
@@ -560,18 +558,19 @@ if(ENABLE_MPI)
 endif(ENABLE_MPI)
 
 if(ENABLE_POPPLER)
-   find_library(POPPLER_LIB poppler)
-   find_library(POPPLER_CPP_LIB poppler-cpp)
+  find_library(POPPLER_LIB poppler)
+  find_library(POPPLER_CPP_LIB poppler-cpp)
   if(POPPLER_LIB)
      set_config_option(HAVE_POPPLER "Poppler")
      list(APPEND EXTERNAL_LIBRARIES ${POPPLER_LIB})
      list(APPEND EXTERNAL_LIBRARIES ${POPPLER_CPP_LIB})
- endif(POPPLER_LIB)
+  endif(POPPLER_LIB)
 endif(ENABLE_POPPLER)
 
-
 if(HAVE_MESH OR HAVE_SOLVER)
   if(ENABLE_METIS)
+    # Gmsh currently uses Metis 4 - we should switch to Metis 5 and use the
+    # system lib if available
     add_subdirectory(contrib/Metis)
     include_directories(contrib/Metis)
     set_config_option(HAVE_METIS "Metis")
@@ -680,11 +679,11 @@ if(ENABLE_MED OR ENABLE_CGNS)
     if(ENABLE_CGNS)
       find_library(CGNS_LIB cgns PATHS ENV CGNS_ROOT PATH_SUFFIXES lib)
       find_path(CGNS_INC "cgnslib.h" PATHS ENV CGNS_ROOT PATH_SUFFIXES include)
-      if(CGNS_LIB)
+      if(CGNS_LIB AND CGNS_INC)
         set_config_option(HAVE_LIBCGNS "Cgns")
         list(APPEND EXTERNAL_LIBRARIES ${CGNS_LIB})
         list(APPEND EXTERNAL_INCLUDES ${CGNS_INC})
-      endif(CGNS_LIB)
+      endif(CGNS_LIB AND CGNS_INC)
     endif(ENABLE_CGNS)    
     if(MED_LIB OR CGNS_LIB)
       list(APPEND EXTERNAL_LIBRARIES ${HDF5_LIB})
@@ -718,19 +717,18 @@ if(HAVE_SOLVER)
   endif(ENABLE_GMM)
 
   if(ENABLE_TAUCS)
-    if(NOT HAVE_METIS)
-      message(SEND_ERROR "You have to enable METIS in order to use TAUCS")
-    endif(NOT HAVE_METIS)
-    find_library(TAUCS_LIB taucs PATH_SUFFIXES lib)
-    if(TAUCS_LIB)
+    if(HAVE_METIS)
+      find_library(TAUCS_LIB taucs PATH_SUFFIXES lib)
       find_path(TAUCS_INC "taucs.h" PATH_SUFFIXES src include taucs)
-      if(TAUCS_INC)
+      if(TAUCS_LIB AND TAUCS_INC)
         set_config_option(HAVE_TAUCS "Taucs")
         add_definitions(-DTAUCS_CILK)
         list(APPEND EXTERNAL_LIBRARIES ${TAUCS_LIB})
         list(APPEND EXTERNAL_INCLUDES ${TAUCS_INC})
-      endif(TAUCS_INC)
-    endif(TAUCS_LIB)
+      endif(TAUCS_LIB AND TAUCS_INC)
+    else(HAVE_METIS)
+      message(STATUS "Warning: Disabling Taucs (requires METIS)")
+    endif(HAVE_METIS)
   endif(ENABLE_TAUCS)
 
   if(ENABLE_PETSC)