diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7bf00ef23d25841b3d12f7ccf80a1f9659786cbb..172f740c76035c8c5a0235deb65621c9ea97068f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -287,6 +287,156 @@ IF(NOT BUILD_SHARED_LIBS)
   ADD_DEFINITIONS(-DOSSIM_STATIC)
 ENDIF(NOT BUILD_SHARED_LIBS)
 
+#-------------------------------
+# GDAL Library
+#-------------------------------
+
+# Option for internal/external GDAL
+OPTION(OTB_USE_EXTERNAL_GDAL "Use an outside build of GDAL. (OFF is NOT IMPLEMENTED)" ON)
+MARK_AS_ADVANCED(OTB_USE_EXTERNAL_GDAL)
+
+IF(OTB_USE_EXTERNAL_GDAL)
+
+  FIND_PACKAGE(GDAL)
+
+  IF (NOT GDAL_FOUND)
+    FIND_PATH(GDAL_INCLUDE_DIR gdal.h $ENV{GDAL_INCLUDE_DIR} /usr/include/gdal)
+    FIND_LIBRARY(GDAL_LIBRARY NAMES gdal gdal1.5.0 gdal1.4.0 gdal1.3.2 PATHS /usr/lib/gdal)
+  ENDIF(NOT GDAL_FOUND)
+
+  IF (NOT GDAL_INCLUDE_DIR)
+  MESSAGE(FATAL_ERROR
+           "Cannot find GDAL include directory. Please set GDAL_INCLUDE_DIR.")
+  ENDIF (NOT GDAL_INCLUDE_DIR)
+
+  INCLUDE_DIRECTORIES(${GDAL_INCLUDE_DIR})
+
+  IF (NOT GDAL_LIBRARY)
+  MESSAGE(FATAL_ERROR
+           "Cannot find GDAL library. Please set GDAL_LIBRARY.")
+  ENDIF (NOT GDAL_LIBRARY)
+  MESSAGE(STATUS "GDAL library found: ${GDAL_LIBRARY}")
+
+  # Find gdal version
+  FIND_PROGRAM(GDALCONFIG_EXECUTABLE gdal-config)
+  IF (GDALCONFIG_EXECUTABLE)
+      EXECUTE_PROCESS(COMMAND ${GDALCONFIG_EXECUTABLE} --version
+      OUTPUT_VARIABLE GDAL_VERSION
+      OUTPUT_STRIP_TRAILING_WHITESPACE)
+      MESSAGE(STATUS "GDAL version is " ${GDAL_VERSION})
+      SET(GDAL_VERSION ${GDAL_VERSION} CACHE STRING "GDAL version" FORCE)
+      MARK_AS_ADVANCED(GDAL_VERSION)
+  ELSE (GDALCONFIG_EXECUTABLE)    
+      MESSAGE(STATUS "gdal-config not found")
+  ENDIF (GDALCONFIG_EXECUTABLE)
+  
+
+  # Find geotiff headers
+  FIND_PATH(GEOTIFF_INCLUDE_DIRS geotiff.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include/geotiff)
+  IF (NOT GEOTIFF_INCLUDE_DIRS)
+  MESSAGE(FATAL_ERROR
+           "Cannot find geotiff headers. Please set GEOTIFF_INCLUDE_DIRS.")
+  ENDIF (NOT GEOTIFF_INCLUDE_DIRS)
+#  INCLUDE_DIRECTORIES(${GEOTIFF_INCLUDE_DIRS})
+
+  # Find tiff headers
+  FIND_PATH(TIFF_INCLUDE_DIRS tiffio.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
+  IF (NOT TIFF_INCLUDE_DIRS)
+  MESSAGE(FATAL_ERROR
+           "Cannot find libtiff headers. Please set TIFF_INCLUDE_DIRS.")
+  ENDIF (NOT TIFF_INCLUDE_DIRS)
+#  INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIRS})
+
+  # Find jpeg headers
+  FIND_PATH(JPEG_INCLUDE_DIRS jpeglib.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
+  IF (NOT JPEG_INCLUDE_DIRS)
+  MESSAGE(FATAL_ERROR
+           "Cannot find jpeg headers. Please set JPEG_INCLUDE_DIRS.")
+  ENDIF (NOT JPEG_INCLUDE_DIRS)
+  INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIRS})
+
+  # Find ogr headers
+  FIND_PATH(OGR_INCLUDE_DIRS ogrsf_frmts.h  $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
+  IF (NOT OGR_INCLUDE_DIRS)
+  MESSAGE(FATAL_ERROR
+           "Cannot find ogr headers. Please set OGR_INCLUDE_DIRS.")
+  ENDIF (NOT OGR_INCLUDE_DIRS)
+  INCLUDE_DIRECTORIES(${OGR_INCLUDE_DIRS})
+
+  # Check if ${GDAL_LIBRARY} has tiff library
+  TRY_COMPILE(GDAL_HAS_TIFF
+  ${CMAKE_CURRENT_BINARY_DIR}/CMake
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasTiff.cxx
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${TIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  OUTPUT_VARIABLE OUTPUT)
+  IF(GDAL_HAS_TIFF)
+  MESSAGE(STATUS "Testing if GDAL has tiff    -- yes")
+  SET(TIFF_LIBRARY ${GDAL_LIBRARY})
+  ELSE(GDAL_HAS_TIFF)
+  MESSAGE(STATUS "Testing if GDAL has tiff    -- no")
+  FIND_LIBRARY(TIFF_LIBRARY tiff PATHS)
+  IF (NOT TIFF_LIBRARY)
+  MESSAGE(FATAL_ERROR
+           "Cannot find tiff library. Please set TIFF_LIBRARY.")
+  ENDIF (NOT TIFF_LIBRARY)
+  ENDIF(GDAL_HAS_TIFF)
+
+  # Check if ${GDAL_LIBRARY} has geotiff library
+  TRY_COMPILE(GDAL_HAS_GEOTIFF
+  ${CMAKE_CURRENT_BINARY_DIR}/CMake
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasGeoTiff.cxx
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GEOTIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  OUTPUT_VARIABLE OUTPUT)
+  IF(GDAL_HAS_GEOTIFF)
+  MESSAGE(STATUS "Testing if GDAL has geotiff -- yes")
+  SET(GEOTIFF_LIBRARY ${GDAL_LIBRARY})
+  ELSE(GDAL_HAS_GEOTIFF)
+  MESSAGE(STATUS "Testing if GDAL has geotiff -- no")
+  FIND_LIBRARY(GEOTIFF_LIBRARY geotiff PATHS)
+  IF (NOT GEOTIFF_LIBRARY)
+  MESSAGE(FATAL_ERROR
+           "Cannot find geotiff library. Please set GEOTIFF_LIBRARY.")
+  ENDIF (NOT GEOTIFF_LIBRARY)
+  ENDIF(GDAL_HAS_GEOTIFF)
+
+  # Check if ${GDAL_LIBRARY} has jpeg library
+  TRY_COMPILE(GDAL_HAS_JPEG
+  ${CMAKE_CURRENT_BINARY_DIR}/CMake
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasJpeg.cxx
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${JPEG_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  OUTPUT_VARIABLE OUTPUT)
+  IF(GDAL_HAS_JPEG)
+  MESSAGE(STATUS "Testing if GDAL has jpeg    -- yes")
+  SET(JPEG_LIBRARY ${GDAL_LIBRARY})
+  ELSE(GDAL_HAS_JPEG)
+  MESSAGE(STATUS "Testing if GDAL has jpeg    -- no")
+  FIND_LIBRARY(JPEG_LIBRARY jpeg PATHS)
+  IF (NOT JPEG_LIBRARY)
+  MESSAGE(FATAL_ERROR
+           "Cannot find jpeg library. Please set JPEG_LIBRARY.")
+  ENDIF (NOT JPEG_LIBRARY)
+  ENDIF(GDAL_HAS_JPEG)
+
+  # Check if ${GDAL_LIBRARY} has ogr library
+  TRY_COMPILE(GDAL_HAS_OGR
+  ${CMAKE_CURRENT_BINARY_DIR}/CMake
+  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasOGR.cxx
+  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${OGR_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
+  OUTPUT_VARIABLE OUTPUT)
+  IF(GDAL_HAS_OGR)
+  MESSAGE(STATUS "Testing if GDAL has OGR     -- yes")
+  SET(OGR_LIBRARY ${GDAL_LIBRARY})
+  ELSE(GDAL_HAS_OGR)
+  MESSAGE(STATUS "Testing if GDAL has OGR     -- no")
+  MESSAGE(FATAL_ERROR "OGR MESSAGE: ${OUTPUT}")
+  FIND_LIBRARY(OGR_LIBRARY ogr PATHS)
+  IF (NOT OGR_LIBRARY)
+  MESSAGE(FATAL_ERROR
+           "Cannot find ogr library. Please set OGR_LIBRARY.")
+  ENDIF (NOT OGR_LIBRARY)
+  ENDIF(GDAL_HAS_OGR)
+ELSE(OTB_USE_EXTERNAL_GDAL)
+ENDIF(OTB_USE_EXTERNAL_GDAL)
 
 #-----------------------------------------------------------------------------
 # Option for generate Visu tools !!!
@@ -336,6 +486,9 @@ IF(OTB_USE_VISU_GUI)
 		# Additionnal variables needed by OTB_VISU_GUI_LIBRARIES and FLTK_FLUID_EXECUTABLE
 		SET(FLTK_LIBRARIES "fltk_images;fltk;fltk_gl;fltk_forms")
 		SET(FLUID_COMMAND ${EXECUTABLE_OUTPUT_PATH}/fluid)
+		# FLTK CMake needs a variable called JPEG_INCLUDE_DIR
+		SET(JPEG_INCLUDE_DIR ${JPEG_INCLUDE_DIRS})
+		MESSAGE("JPEG_INCLUDE_DIRS: ${JPEG_INCLUDE_DIRS}, JPEG_INCLUDE_DIR=${JPEG_INCLUDE_DIR}")
         ENDIF(OTB_USE_EXTERNAL_FLTK)
 
         SET(OTB_VISU_GUI_LIBRARIES "${FLTK_LIBRARIES};${OPENGL_LIBRARIES} ")
@@ -496,156 +649,7 @@ IF(OTB_USE_EXTERNAL_BOOST)
   INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
 ENDIF(OTB_USE_EXTERNAL_BOOST)
 
-#-------------------------------
-# GDAL Library
-#-------------------------------
-
-# Option for internal/external GDAL
-OPTION(OTB_USE_EXTERNAL_GDAL "Use an outside build of GDAL. (OFF is NOT IMPLEMENTED)" ON)
-MARK_AS_ADVANCED(OTB_USE_EXTERNAL_GDAL)
-
-IF(OTB_USE_EXTERNAL_GDAL)
-
-  FIND_PACKAGE(GDAL)
-
-  IF (NOT GDAL_FOUND)
-    FIND_PATH(GDAL_INCLUDE_DIR gdal.h $ENV{GDAL_INCLUDE_DIR} /usr/include/gdal)
-    FIND_LIBRARY(GDAL_LIBRARY NAMES gdal gdal1.5.0 gdal1.4.0 gdal1.3.2 PATHS /usr/lib/gdal)
-  ENDIF(NOT GDAL_FOUND)
-
-  IF (NOT GDAL_INCLUDE_DIR)
-  MESSAGE(FATAL_ERROR
-           "Cannot find GDAL include directory. Please set GDAL_INCLUDE_DIR.")
-  ENDIF (NOT GDAL_INCLUDE_DIR)
-
-  INCLUDE_DIRECTORIES(${GDAL_INCLUDE_DIR})
-
-  IF (NOT GDAL_LIBRARY)
-  MESSAGE(FATAL_ERROR
-           "Cannot find GDAL library. Please set GDAL_LIBRARY.")
-  ENDIF (NOT GDAL_LIBRARY)
-  MESSAGE(STATUS "GDAL library found: ${GDAL_LIBRARY}")
-
-  # Find gdal version
-  FIND_PROGRAM(GDALCONFIG_EXECUTABLE gdal-config)
-  IF (GDALCONFIG_EXECUTABLE)
-      EXECUTE_PROCESS(COMMAND ${GDALCONFIG_EXECUTABLE} --version
-      OUTPUT_VARIABLE GDAL_VERSION
-      OUTPUT_STRIP_TRAILING_WHITESPACE)
-      MESSAGE(STATUS "GDAL version is " ${GDAL_VERSION})
-      SET(GDAL_VERSION ${GDAL_VERSION} CACHE STRING "GDAL version" FORCE)
-      MARK_AS_ADVANCED(GDAL_VERSION)
-  ELSE (GDALCONFIG_EXECUTABLE)    
-      MESSAGE(STATUS "gdal-config not found")
-  ENDIF (GDALCONFIG_EXECUTABLE)
-  
-
-  # Find geotiff headers
-  FIND_PATH(GEOTIFF_INCLUDE_DIRS geotiff.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include/geotiff)
-  IF (NOT GEOTIFF_INCLUDE_DIRS)
-  MESSAGE(FATAL_ERROR
-           "Cannot find geotiff headers. Please set GEOTIFF_INCLUDE_DIRS.")
-  ENDIF (NOT GEOTIFF_INCLUDE_DIRS)
-#  INCLUDE_DIRECTORIES(${GEOTIFF_INCLUDE_DIRS})
-
-  # Find tiff headers
-  FIND_PATH(TIFF_INCLUDE_DIRS tiffio.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
-  IF (NOT TIFF_INCLUDE_DIRS)
-  MESSAGE(FATAL_ERROR
-           "Cannot find libtiff headers. Please set TIFF_INCLUDE_DIRS.")
-  ENDIF (NOT TIFF_INCLUDE_DIRS)
-#  INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIRS})
-
-  # Find jpeg headers
-  FIND_PATH(JPEG_INCLUDE_DIRS jpeglib.h $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
-  IF (NOT JPEG_INCLUDE_DIRS)
-  MESSAGE(FATAL_ERROR
-           "Cannot find jpeg headers. Please set JPEG_INCLUDE_DIRS.")
-  ENDIF (NOT JPEG_INCLUDE_DIRS)
-  INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIRS})
-
-  # Find ogr headers
-  FIND_PATH(OGR_INCLUDE_DIRS ogrsf_frmts.h  $ENV{GDAL_INCLUDE_DIR} ${GDAL_INCLUDE_DIR} /usr/include)
-  IF (NOT OGR_INCLUDE_DIRS)
-  MESSAGE(FATAL_ERROR
-           "Cannot find ogr headers. Please set OGR_INCLUDE_DIRS.")
-  ENDIF (NOT OGR_INCLUDE_DIRS)
-  INCLUDE_DIRECTORIES(${OGR_INCLUDE_DIRS})
 
-  # Check if ${GDAL_LIBRARY} has tiff library
-  TRY_COMPILE(GDAL_HAS_TIFF
-  ${CMAKE_CURRENT_BINARY_DIR}/CMake
-  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasTiff.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${TIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
-  OUTPUT_VARIABLE OUTPUT)
-  IF(GDAL_HAS_TIFF)
-  MESSAGE(STATUS "Testing if GDAL has tiff    -- yes")
-  SET(TIFF_LIBRARY ${GDAL_LIBRARY})
-  ELSE(GDAL_HAS_TIFF)
-  MESSAGE(STATUS "Testing if GDAL has tiff    -- no")
-  FIND_LIBRARY(TIFF_LIBRARY tiff PATHS)
-  IF (NOT TIFF_LIBRARY)
-  MESSAGE(FATAL_ERROR
-           "Cannot find tiff library. Please set TIFF_LIBRARY.")
-  ENDIF (NOT TIFF_LIBRARY)
-  ENDIF(GDAL_HAS_TIFF)
-
-  # Check if ${GDAL_LIBRARY} has geotiff library
-  TRY_COMPILE(GDAL_HAS_GEOTIFF
-  ${CMAKE_CURRENT_BINARY_DIR}/CMake
-  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasGeoTiff.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GEOTIFF_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
-  OUTPUT_VARIABLE OUTPUT)
-  IF(GDAL_HAS_GEOTIFF)
-  MESSAGE(STATUS "Testing if GDAL has geotiff -- yes")
-  SET(GEOTIFF_LIBRARY ${GDAL_LIBRARY})
-  ELSE(GDAL_HAS_GEOTIFF)
-  MESSAGE(STATUS "Testing if GDAL has geotiff -- no")
-  FIND_LIBRARY(GEOTIFF_LIBRARY geotiff PATHS)
-  IF (NOT GEOTIFF_LIBRARY)
-  MESSAGE(FATAL_ERROR
-           "Cannot find geotiff library. Please set GEOTIFF_LIBRARY.")
-  ENDIF (NOT GEOTIFF_LIBRARY)
-  ENDIF(GDAL_HAS_GEOTIFF)
-
-  # Check if ${GDAL_LIBRARY} has jpeg library
-  TRY_COMPILE(GDAL_HAS_JPEG
-  ${CMAKE_CURRENT_BINARY_DIR}/CMake
-  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasJpeg.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${JPEG_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
-  OUTPUT_VARIABLE OUTPUT)
-  IF(GDAL_HAS_JPEG)
-  MESSAGE(STATUS "Testing if GDAL has jpeg    -- yes")
-  SET(JPEG_LIBRARY ${GDAL_LIBRARY})
-  ELSE(GDAL_HAS_JPEG)
-  MESSAGE(STATUS "Testing if GDAL has jpeg    -- no")
-  FIND_LIBRARY(JPEG_LIBRARY jpeg PATHS)
-  IF (NOT JPEG_LIBRARY)
-  MESSAGE(FATAL_ERROR
-           "Cannot find jpeg library. Please set JPEG_LIBRARY.")
-  ENDIF (NOT JPEG_LIBRARY)
-  ENDIF(GDAL_HAS_JPEG)
-
-  # Check if ${GDAL_LIBRARY} has ogr library
-  TRY_COMPILE(GDAL_HAS_OGR
-  ${CMAKE_CURRENT_BINARY_DIR}/CMake
-  ${CMAKE_CURRENT_SOURCE_DIR}/CMake/TestGDALHasOGR.cxx
-  CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${OGR_INCLUDE_DIRS};${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}"
-  OUTPUT_VARIABLE OUTPUT)
-  IF(GDAL_HAS_OGR)
-  MESSAGE(STATUS "Testing if GDAL has OGR     -- yes")
-  SET(OGR_LIBRARY ${GDAL_LIBRARY})
-  ELSE(GDAL_HAS_OGR)
-  MESSAGE(STATUS "Testing if GDAL has OGR     -- no")
-  MESSAGE(FATAL_ERROR "OGR MESSAGE: ${OUTPUT}")
-  FIND_LIBRARY(OGR_LIBRARY ogr PATHS)
-  IF (NOT OGR_LIBRARY)
-  MESSAGE(FATAL_ERROR
-           "Cannot find ogr library. Please set OGR_LIBRARY.")
-  ENDIF (NOT OGR_LIBRARY)
-  ENDIF(GDAL_HAS_OGR)
-ELSE(OTB_USE_EXTERNAL_GDAL)
-ENDIF(OTB_USE_EXTERNAL_GDAL)
 
 #Experimental
 OPTION(OTB_USE_GETTEXT "Get Text Library." ON)