diff --git a/CMakeLists.txt b/CMakeLists.txt
index 277e049b79e710c085c0917cc5a74fa00a60c6f1..9fc3804ebbb14939d6b4529156289646bd8eb1d0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -121,35 +121,42 @@ endmacro(append_gmsh_src)
 if(ENABLE_BLAS_LAPACK)
   if(MSVC)
     # on Windows with Visual C++ try really hard to find blas/lapack
-    # *without* requiring a Fortran compiler: 1) first try to get the
-    # Intel MKL in MKL_PREFIX_PATH; if failed 2) try to to get the
-    # reference blas/lapack libs in CMAKE_PREFIX_PATH (useful for
-    # users with no Fortan compiler and no MKL license, who can just
-    # download our precompiled "gmsh-dep" package)
-    if(MKL_PREFIX_PATH)
-      if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-        set(MKL_PATH ${MKL_PREFIX_PATH}/em64t/lib)
-      else(CMAKE_SIZEOF_VOID_P EQUAL 8)
-        set(MKL_PATH ${MKL_PREFIX_PATH}/ia32/lib)
-      endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
-      find_library(LIBGUIDE libguide ${MKL_PATH})
-      find_library(MKL_C mkl_c PATHS ${MKL_PATH})
-      find_library(MKL_INTEL_C mkl_intel_c ${MKL_PATH})
-      find_library(MKL_INTEL_THREAD mkl_intel_thread ${MKL_PATH})
-      find_library(MKL_CORE mkl_core ${MKL_PATH})
-      if(LIBGUIDE AND MKL_C AND MKL_INTEL_C AND MKL_INTEL_THREAD AND MKL_CORE)
-        set(LAPACK_LIBRARIES ${LIBGUIDE} ${MKL_C} ${MKL_INTEL_C} 
-            ${MKL_INTEL_THREAD} ${MKL_CORE})
-        set(HAVE_BLAS TRUE)
-        set(HAVE_LAPACK TRUE)
-        list(APPEND CONFIG_OPTIONS "IntelBlas" "IntelLapack")
-      endif(LIBGUIDE AND MKL_C AND MKL_INTEL_C AND MKL_INTEL_THREAD AND MKL_CORE)
-    endif(MKL_PREFIX_PATH)
+    # in CMAKE_PREFIX_PATH *without* requiring a Fortran compiler: 1)
+    # try to find the Intel MKL; if not found 2) try to get the
+    # reference blas/lapack libs (useful for users with no Fortan
+    # compiler and no MKL license, who can just download our
+    # precompiled "gmsh-dep" package)
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+      set(MKL_PATH em64t/lib)
+    else(CMAKE_SIZEOF_VOID_P EQUAL 8)
+      set(MKL_PATH ia32/lib)
+    endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+    find_library(LIBGUIDE libguide PATHS ${CMAKE_PREFIX_PATH} 
+                 PATH_SUFFIXES ${MKL_PATH})
+    find_library(MKL_C mkl_c PATHS ${CMAKE_PREFIX_PATH} 
+                 PATH_SUFFIXES ${MKL_PATH})
+    find_library(MKL_INTEL_C mkl_intel_c PATHS ${CMAKE_PREFIX_PATH} 
+                 PATH_SUFFIXES ${MKL_PATH})
+    find_library(MKL_INTEL_THREAD mkl_intel_thread PATHS ${CMAKE_PREFIX_PATH} 
+                 PATH_SUFFIXES ${MKL_PATH})
+    find_library(MKL_CORE mkl_core PATHS ${CMAKE_PREFIX_PATH} 
+                 PATH_SUFFIXES ${MKL_PATH})
+    if(LIBGUIDE AND MKL_C AND MKL_INTEL_C AND MKL_INTEL_THREAD AND MKL_CORE)
+      set(LAPACK_LIBRARIES ${LIBGUIDE} ${MKL_C} ${MKL_INTEL_C} 
+          ${MKL_INTEL_THREAD} ${MKL_CORE})
+      set(HAVE_BLAS TRUE)
+      set(HAVE_LAPACK TRUE)
+      list(APPEND CONFIG_OPTIONS "IntelBlas" "IntelLapack")
+    endif(LIBGUIDE AND MKL_C AND MKL_INTEL_C AND MKL_INTEL_THREAD AND MKL_CORE)
     if(NOT HAVE_BLAS OR NOT HAVE_LAPACK)
-      find_library(REF_LAPACK lapack ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
-      find_library(REF_BLAS blas ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
-      find_library(REF_G2C g2c ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
-      find_library(REF_GCC gcc ${CMAKE_PREFIX_PATH}/lib NO_DEFAULT_PATH)
+      find_library(REF_LAPACK lapack PATHS ${CMAKE_PREFIX_PATH}
+                   PATH_SUFFIXES lib NO_DEFAULT_PATH)
+      find_library(REF_BLAS blas PATHS ${CMAKE_PREFIX_PATH}
+                   PATH_SUFFIXES lib NO_DEFAULT_PATH)
+      find_library(REF_G2C g2c PATHS ${CMAKE_PREFIX_PATH}
+                   PATH_SUFFIXES lib NO_DEFAULT_PATH)
+      find_library(REF_GCC gcc PATHS ${CMAKE_PREFIX_PATH}
+                   PATH_SUFFIXES lib NO_DEFAULT_PATH)
       if(REF_LAPACK AND REF_BLAS AND REF_G2C AND REF_GCC)
         set(LAPACK_LIBRARIES ${REF_LAPACK} ${REF_BLAS} ${REF_G2C} ${REF_GCC})
         set(HAVE_BLAS TRUE)