diff --git a/CMake/ImportOssim.cmake b/CMake/ImportOssim.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..27ff10f87fe7d8b7d29814928e1dde24b3930c2a
--- /dev/null
+++ b/CMake/ImportOssim.cmake
@@ -0,0 +1,28 @@
+
+MESSAGE(STATUS "Importing Ossim...")
+# Option for internal/external GDAL
+OPTION(OTB_USE_EXTERNAL_OSSIM "Use an outside build of Ossim." OFF)
+MARK_AS_ADVANCED(OTB_USE_EXTERNAL_OSSIM)
+
+IF(OTB_USE_EXTERNAL_OSSIM)
+
+  IF (NOT OSSIM_FOUND)
+    FIND_PATH(OSSIM_INCLUDE_DIR NAMES ossim/init/ossimInit.h PATHS $ENV{OSSIM_INCLUDE_DIR} /usr/local)
+    FIND_LIBRARY(OSSIM_LIBRARY NAMES ossim PATHS /usr/local/lib/ossim)
+  ENDIF(NOT OSSIM_FOUND)
+
+  IF (NOT OSSIM_INCLUDE_DIR)
+  MESSAGE(FATAL_ERROR
+           "Cannot find OSSIM include directory. Please set OSSIM_INCLUDE_DIR.")
+  ENDIF (NOT OSSIM_INCLUDE_DIR)
+
+  INCLUDE_DIRECTORIES(${OSSIM_INCLUDE_DIR} ${OSSIM_INCLUDE_DIR}/ossim)
+
+  IF (NOT OSSIM_LIBRARY)
+    MESSAGE(FATAL_ERROR
+             "Cannot find OSSIM library. Please set OSSIM_LIBRARY.")
+  ENDIF (NOT OSSIM_LIBRARY)
+  MESSAGE(STATUS "  OSSIM includes : ${OSSIM_INCLUDE_DIR}")
+  MESSAGE(STATUS "  OSSIM library  : ${OSSIM_LIBRARY}")
+ENDIF(OTB_USE_EXTERNAL_OSSIM)
+
diff --git a/CMake/otbIncludeDirectories.cmake b/CMake/otbIncludeDirectories.cmake
index 1c28ca10011119b888d5a7768ed8da3124727850..236c5091ddcaf1fd7e624f127384cae472976d83 100644
--- a/CMake/otbIncludeDirectories.cmake
+++ b/CMake/otbIncludeDirectories.cmake
@@ -57,9 +57,6 @@ SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
   ${OTB_BINARY_DIR}/Code/Visualization
   ${OTB_MSINTTYPES_INCLUDE_DIR_BUILDTREE}
   ${OTB_SOURCE_DIR}/Utilities/otbsvm
-  ${OTB_SOURCE_DIR}/Utilities/otbossim/include
-  ${OTB_SOURCE_DIR}/Utilities/otbossim/include/ossim
-  ${OTB_BINARY_DIR}/Utilities/otbossim/include/ossim
   ${OTB_SOURCE_DIR}/Utilities/otbossimplugins
   ${OTB_SOURCE_DIR}/Utilities/otbossimplugins/ossim
   ${OTB_SOURCE_DIR}/Utilities/InsightJournal
@@ -87,6 +84,16 @@ ELSE(NOT OTB_USE_EXTERNAL_BOOST)
     ${Boost_INCLUDE_DIR})
 ENDIF(NOT OTB_USE_EXTERNAL_BOOST)
 
+IF(NOT OTB_USE_EXTERNAL_OSSIM)
+  SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
+  ${OTB_SOURCE_DIR}/Utilities/otbossim/include
+  ${OTB_SOURCE_DIR}/Utilities/otbossim/include/ossim
+  ${OTB_BINARY_DIR}/Utilities/otbossim/include/ossim)
+ELSE(NOT OTB_USE_EXTERNAL_OSSIM)
+  SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
+    ${OSSIM_INCLUDE_DIR})
+ENDIF(NOT OTB_USE_EXTERNAL_OSSIM)
+
 IF(OTB_COMPILE_JPEG2000)
   SET(OTB_INCLUDE_DIRS_BUILD_TREE ${OTB_INCLUDE_DIRS_BUILD_TREE}
         ${OTB_SOURCE_DIR}/Utilities/otbopenjpeg
@@ -325,6 +332,7 @@ SET(OTB_INCLUDE_RELATIVE_DIRS ${OTB_INCLUDE_RELATIVE_DIRS}
   Utilities/ITK
   ${OTB_MSINTTYPES_INCLUDE_RELATIVE_DIR}
   Utilities/otbsvm
+  #TODO: probably have to fix that: we don't need to install ossim headers
   Utilities/otbossim
   Utilities/otbossim/include
   Utilities/otbossim/include/ossim
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49f974cadfef1e8f92d43c773082f52b12124c75..6758c4391793cb85df2e316902dca763f4072edb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -130,6 +130,7 @@ INCLUDE(ImportBoost)
 INCLUDE(ImportMapnik) # depends on ImportBoost
 INCLUDE(ImportGetText)
 INCLUDE(ImportOpenThreads)
+INCLUDE(ImportOssim)
 
 #-----------------------------------------------------------------------------
 # Installation vars.
diff --git a/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt b/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt
index 2b9a16ec49f86c49db8b6624ba4c448f0eb564d5..caf62536261959ad0962408133a42fcb5d9c48dc 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt
+++ b/Code/UtilitiesAdapters/OssimAdapters/CMakeLists.txt
@@ -3,7 +3,7 @@
 FILE(GLOB OTBOssimAdapters_SRCS "*.cxx" )
 
 ADD_LIBRARY(OTBOssimAdapters ${OTBOssimAdapters_SRCS})
-TARGET_LINK_LIBRARIES (OTBOssimAdapters otbossim otbossimplugins ITKCommon)
+TARGET_LINK_LIBRARIES (OTBOssimAdapters ${OSSIM_LIBRARY} otbossimplugins ITKCommon)
 IF(OTB_LIBRARY_PROPERTIES)
   SET_TARGET_PROPERTIES(OTBOssimAdapters PROPERTIES ${OTB_LIBRARY_PROPERTIES})
 ENDIF(OTB_LIBRARY_PROPERTIES)
diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index e24f9a078bf33ab5484630552dd57c9e8716abd7..fb05d78bf4f5e8b27db11fa0f631198584e71e04 100644
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -53,8 +53,12 @@ MESSAGE(STATUS "Configuring otbknn...")
 ADD_SUBDIRECTORY(otbknn )
 MESSAGE(STATUS "Configuring InsightJournal...")
 ADD_SUBDIRECTORY(InsightJournal)
-MESSAGE(STATUS "Configuring otbossim...")
-ADD_SUBDIRECTORY(otbossim)
+
+IF(NOT OTB_USE_EXTERNAL_OSSIM)
+  MESSAGE(STATUS "Configuring otbossim...")
+  ADD_SUBDIRECTORY(otbossim)
+ENDIF(NOT OTB_USE_EXTERNAL_OSSIM)
+
 MESSAGE(STATUS "Configuring otbossimplugins...")
 ADD_SUBDIRECTORY(otbossimplugins)
 MESSAGE(STATUS "Configuring otb6S...")
diff --git a/Utilities/otbossim/CMakeLists.txt b/Utilities/otbossim/CMakeLists.txt
index 992968fa05e030967b55bd5db6dfc035c2296573..84fa09fb7c2194f71f4f9d77ec8d92701f388f04 100644
--- a/Utilities/otbossim/CMakeLists.txt
+++ b/Utilities/otbossim/CMakeLists.txt
@@ -104,6 +104,8 @@ IF(NOT OTB_DISABLE_UTILITIES_COMPILATION)
   ${ossim_parallel_SRCS}
   ${ossim_elevation_SRCS})
 
+  SET(OSSIM_LIB otbossim)
+
   #Apparently not supported by opensolaris at least
 #  SET_TARGET_PROPERTIES(otbossim
 #    PROPERTIES
diff --git a/Utilities/otbossimplugins/CMakeLists.txt b/Utilities/otbossimplugins/CMakeLists.txt
index 3c8d49eff0e71e52cf3852ad2dfd9fe915ecf832..24be1d8782d9fd2e1f7b2295f6afcda8b4d77e8d 100644
--- a/Utilities/otbossimplugins/CMakeLists.txt
+++ b/Utilities/otbossimplugins/CMakeLists.txt
@@ -11,9 +11,17 @@ SET(OSSIMPLUGINS_OTB_PATCH "1")
 
 INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR} 
   ${CMAKE_CURRENT_SOURCE_DIR}/ossim 
-  ${OTB_SOURCE_DIR}/Utilities/otbossim/include
-  ${OTB_BINARY_DIR}/Utilities/otbossim/include
+#  ${OTB_SOURCE_DIR}/Utilities/otbossim/include
+#  ${OTB_BINARY_DIR}/Utilities/otbossim/include
 )
+IF(OTB_USE_EXTERNAL_OSSIM)
+  MESSAGE(${OSSIM_INCLUDE_DIR})
+  INCLUDE_DIRECTORIES(${OSSIM_INCLUDE_DIR})
+ELSE(OTB_USE_EXTERNAL_OSSIM)
+  INCLUDE_DIRECTORIES(${OTB_SOURCE_DIR}/Utilities/otbossim/include)
+  INCLUDE_DIRECTORIES(${OTB_BINARY_DIR}/Utilities/otbossim/include)
+ENDIF(OTB_USE_EXTERNAL_OSSIM)
+
 INCLUDE_DIRECTORIES(AFTER ${GEOTIFF_INCLUDE_DIRS} ${TIFF_INCLUDE_DIRS})
 
 SET(ossimplugins_SOURCES_DIR ${CMAKE_CURRENT_SOURCE_DIR})
@@ -27,7 +35,7 @@ SET(ossimplugins_SOURCES
 )
 
 ADD_LIBRARY(otbossimplugins ${ossimplugins_SOURCES} )
-TARGET_LINK_LIBRARIES(otbossimplugins ${GEOTIFF_LIBRARY} ${GDAL_LIBRARY} ${OGR_LIBRARY} otbossim)
+TARGET_LINK_LIBRARIES(otbossimplugins ${GEOTIFF_LIBRARY} ${GDAL_LIBRARY} ${OGR_LIBRARY} ${OSSIM_LIBRARY})
 SET_TARGET_PROPERTIES(otbossimplugins
                       PROPERTIES VERSION "${OSSIMPLUGINS_SVN_REVISION}.${OSSIMPLUGINS_OTB_PATCH}.0"
                                  SOVERSION "${OSSIMPLUGINS_SVN_REVISION}.${OSSIMPLUGINS_OTB_PATCH}")