diff --git a/CMakeLists.txt b/CMakeLists.txt
index 023273192d213fed28b3e15a5b151dda35c17d09..77a4c5e957da5422d6f4ba0f4e18c9fe5f8305e7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1102,18 +1102,23 @@ if(ENABLE_OCC)
       # TKAdvTools -- not necessary? (and removed from OCC 6.8)
       TKMath TKernel)
   list(LENGTH OCC_LIBS_REQUIRED NUM_OCC_LIBS_REQUIRED)
-  set(OCC_LIBS)
-  foreach(OCC ${OCC_LIBS_REQUIRED})
-    find_library(OCC_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib
-                 ${OCC_SYS_NAME}/lib ${OCC_SYS_NAME}/vc8/lib)
-    if(OCC_LIB)
-      list(APPEND OCC_LIBS ${OCC_LIB})
-    else(OCC_LIB)
-      message(STATUS "OCC lib " ${OCC} " not Found")
-    endif(OCC_LIB)
-    unset(OCC_LIB CACHE)
-  endforeach(OCC)
-  list(LENGTH OCC_LIBS NUM_OCC_LIBS)
+  if(OCC_LIBS)
+    message(STATUS "OCC libraries specified explicitly: " ${OCC_LIBS})
+    list(LENGTH OCC_LIBS_REQUIRED NUM_OCC_LIBS)
+  else(OCC_LIBS)
+    set(OCC_LIBS)
+    foreach(OCC ${OCC_LIBS_REQUIRED})
+      find_library(OCC_LIB ${OCC} HINTS ENV CASROOT PATH_SUFFIXES lib
+                   ${OCC_SYS_NAME}/lib ${OCC_SYS_NAME}/vc8/lib)
+      if(OCC_LIB)
+        list(APPEND OCC_LIBS ${OCC_LIB})
+      else(OCC_LIB)
+        message(STATUS "OCC lib " ${OCC} " not Found")
+      endif(OCC_LIB)
+      unset(OCC_LIB CACHE)
+    endforeach(OCC)
+    list(LENGTH OCC_LIBS NUM_OCC_LIBS)
+  endif(OCC_LIBS)      
   if(NUM_OCC_LIBS EQUAL NUM_OCC_LIBS_REQUIRED)
     find_path(OCC_INC "BRep_Tool.hxx" PATHS ENV CASROOT PATH_SUFFIXES inc
               include include/oce opencascade)