diff --git a/CMake/UseOTB.cmake.in b/CMake/UseOTB.cmake.in
index 7b0057ae063cf3df86b5b0bae9689a2d63fddae2..47933c54bacceb3ca916a02e5a3ec3eee7084e4e 100644
--- a/CMake/UseOTB.cmake.in
+++ b/CMake/UseOTB.cmake.in
@@ -53,13 +53,22 @@ find_program(OTB_APPLICATION_LAUNCHER otbApplicationLauncherCommandLine PATHS
              NO_SYSTEM_PATH)
 
 if(OTB_USE_EXTERNAL_ITK)
-    find_package(ITK REQUIRED)
-    include(${ITK_USE_FILE})
+  find_package(ITK REQUIRED)
 else()
   find_package(ITK REQUIRED
     HINTS ${OTB_INSTALL_PREFIX} ${OTB_BINARY_DIRS}/../Utilities/ITK)
-  include(${ITK_USE_FILE})
 endif()
+# Don't call ITK_USE_FILE to avoid BEFORE includes of source directories, only
+# perform needed action from the ITK_USE_FILE script. ITK source directories
+# should be already contained in OTB_INCLUDE_DIRS.
+#   - Add compiler flags needed to use ITK.
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ITK_REQUIRED_C_FLAGS}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ITK_REQUIRED_CXX_FLAGS}")
+set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${ITK_REQUIRED_LINK_FLAGS}")
+set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${ITK_REQUIRED_LINK_FLAGS}")
+set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${ITK_REQUIRED_LINK_FLAGS}")
+#   - Add link directories needed to use ITK.
+link_directories(${ITK_LIBRARY_DIRS})
 
 if(ITK_USE_FFTWF OR ITK_USE_FFTWD)
     find_package(FFTW REQUIRED)