diff --git a/Utilities/otbopenjpeg/CHANGES b/Utilities/otbopenjpeg/CHANGES
index 75927c2396fb009d59d540ba0d51a7cc580de2c0..341177a0e14f5c4b75a3842cb4b797919aa4e5d1 100644
--- a/Utilities/otbopenjpeg/CHANGES
+++ b/Utilities/otbopenjpeg/CHANGES
@@ -5,6 +5,13 @@ What's New for OpenJPEG
 ! : changed
 + : added
 
+November 9, 2011
+* [mickael] WIP: fix get_decoded_tile function to avoid error with output image
+* [mickael] fix bug with mj2 applications (credit to winfried)
++ [mickael] enhance mj2 when read jp2h (credit to winfried)
++ [mickael] check if the file extension is the same as the infile format (credit to winfried)
++ [jmalik] add some sanity check in CMakeLists to prevent STRING(REGEX..) call issues
+
 November 8, 2011
 + [mickael] WIP: add get_decoded_tile functionality
 + [mickael] WIP: clean and enhance j2K file
diff --git a/Utilities/otbopenjpeg/CMakeLists.txt b/Utilities/otbopenjpeg/CMakeLists.txt
index 37dc09343a638fb3bd71187afcfbe9140001fd1d..47ebfdcd19886a7555275cb56210b529345594d1 100644
--- a/Utilities/otbopenjpeg/CMakeLists.txt
+++ b/Utilities/otbopenjpeg/CMakeLists.txt
@@ -34,26 +34,15 @@ SET(OPENJPEG_VERSION
   "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}")
 SET(PACKAGE_VERSION
   "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}")
-  
-# svn revision number of this openjpeg fork (used for .so versioning)
-SET(OPENJPEG_SVN_REVISION "1047")
-# patch number for OTB modifications applied on top of OPENJPEG_SVN_REVISION (used for .so versioning)
-SET(OPENJPEG_OTB_PATCH "1")
-
-#SET(OPENJPEG_LIBRARY_PROPERTIES
-#  VERSION   "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}"
-#  SOVERSION "${OPENJPEG_VERSION_MAJOR}"
-#)
-
 SET(OPENJPEG_LIBRARY_PROPERTIES
-  VERSION   "${OPENJPEG_SVN_REVISION}.${OPENJPEG_OTB_PATCH}.0"
-  SOVERSION "${OPENJPEG_SVN_REVISION}.${OPENJPEG_OTB_PATCH}"
+  VERSION   "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}"
+  SOVERSION "${OPENJPEG_VERSION_MAJOR}"
 )
 
 # --------------------------------------------------------------------------
 # Path to additional CMake modules
 SET(CMAKE_MODULE_PATH
-    ${OPENJPEG_SOURCE_DIR}/CMake
+    ${CMAKE_SOURCE_DIR}/CMake
     ${CMAKE_MODULE_PATH})
 
 # --------------------------------------------------------------------------
@@ -126,8 +115,8 @@ INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake)
 #-----------------------------------------------------------------------------
 # Setup file for setting custom ctest vars
 CONFIGURE_FILE(
-  ${OPENJPEG_SOURCE_DIR}/CMake/CTestCustom.cmake.in
-  ${OPENJPEG_BINARY_DIR}/CTestCustom.cmake
+  ${CMAKE_SOURCE_DIR}/CMake/CTestCustom.cmake.in
+  ${CMAKE_BINARY_DIR}/CTestCustom.cmake
   @ONLY
   )
 
@@ -141,28 +130,19 @@ MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
 #-----------------------------------------------------------------------------
 # configure name mangling to allow multiple libraries to coexist
 # peacefully
-
-#SET(OPJ_MANGLE_PREFIX "" CACHE STRING "Prefix used to mangle all the symbols")
-IF(OPJ_MANGLE_PREFIX)
-  SET(OPJ_USE_MANGLE_PREFIX ON)
-ELSE(OPJ_MANGLE_PREFIX)
-  SET(OPJ_USE_MANGLE_PREFIX OFF)
-ENDIF(OPJ_MANGLE_PREFIX)
-
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.cmake.in
+IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
+SET(MANGLE_PREFIX ${OPENJPEG_LIBRARY_NAME})
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in
                ${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h
                @ONLY IMMEDIATE)
-
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle_private.h.cmake.in
-               ${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle_private.h
-               @ONLY IMMEDIATE)
+ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in)
 
 #-----------------------------------------------------------------------------
 # pkgconfig support
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libopenjpeg1.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc @ONLY)
-#INSTALL( FILES  ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
-#INSTALL( CODE
-#  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink \"libopenjpeg1.pc\" \"\$ENV{DESTDIR}${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig/libopenjpeg.pc\")")
+INSTALL( FILES  ${CMAKE_CURRENT_BINARY_DIR}/libopenjpeg1.pc DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig )
+INSTALL( CODE
+  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink \"libopenjpeg1.pc\" \"\$ENV{DESTDIR}${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig/libopenjpeg.pc\")")
 
 #-----------------------------------------------------------------------------
 # Compiler specific flags:
@@ -228,9 +208,9 @@ ADD_SUBDIRECTORY(libopenjpeg)
 
 #-----------------------------------------------------------------------------
 # Build Applications
-#OPTION(BUILD_CODEC "Build the CODEC executables" ON)
-#OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF)
-#OPTION(BUILD_JPIP "Build the JPIP library and executables." OFF)
+OPTION(BUILD_CODEC "Build the CODEC executables" ON)
+OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF)
+OPTION(BUILD_JPIP "Build the JPIP library and executables." OFF)
 
 IF(BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP)
   OPTION(BUILD_THIRDPARTY "Build the thirdparty executables if it is needed" OFF)
@@ -247,18 +227,18 @@ CONFIGURE_FILE("${OPENJPEG_SOURCE_DIR}/opj_config.h.cmake.in"
 
 #-----------------------------------------------------------------------------
 # Build JPWL-flavoured library and executables
-#OPTION(BUILD_JPWL "Build the JPWL library and executables" OFF)
+OPTION(BUILD_JPWL "Build the JPWL library and executables" OFF)
 
 #-----------------------------------------------------------------------------
 # Build DOCUMENTATION (not in ALL target and only if Doxygen is found)
-#OPTION(BUILD_DOC "Build the HTML documentation (with doxygen if available)." OFF)
+OPTION(BUILD_DOC "Build the HTML documentation (with doxygen if available)." OFF)
 IF(BUILD_DOC)
     ADD_SUBDIRECTORY(doc)
 ENDIF(BUILD_DOC)
 
 #-----------------------------------------------------------------------------
 # Buld Testing
-#OPTION(BUILD_TESTING "Build the tests." OFF)
+OPTION(BUILD_TESTING "Build the tests." OFF)
 IF(BUILD_TESTING)
   IF(BUILD_CODEC)
     ENABLE_TESTING()
@@ -284,18 +264,18 @@ ENDIF(BUILD_TESTING)
 
 #-----------------------------------------------------------------------------
 # install all targets referenced as OPENJPEGTargets
-#INSTALL(EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR})
-#CONFIGURE_FILE( ${OPENJPEG_SOURCE_DIR}/CMake/OpenJPEGConfig.cmake.in
-#  ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
-#  @ONLY
-#)
-#INSTALL( FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
-#  DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}
-#)
+INSTALL(EXPORT OpenJPEGTargets DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR})
+CONFIGURE_FILE( ${OPENJPEG_SOURCE_DIR}/CMake/OpenJPEGConfig.cmake.in
+  ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
+  @ONLY
+)
+INSTALL( FILES ${OPENJPEG_BINARY_DIR}/OpenJPEGConfig.cmake
+  DESTINATION ${OPENJPEG_INSTALL_PACKAGE_DIR}
+)
 
 #-----------------------------------------------------------------------------
 # install CHANGES and LICENSE
-#INSTALL(
-#  FILES       CHANGES 
-#              LICENSE
-#  DESTINATION ${OPENJPEG_INSTALL_DOC_DIR})
+INSTALL(
+  FILES       CHANGES 
+              LICENSE
+  DESTINATION ${OPENJPEG_INSTALL_DOC_DIR})
diff --git a/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt b/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt
index 1f94fe04e55c7d3cd8b84c2c51e54ea9666f4422..24ecf4091053e8d04c243858efc251f41eb65f4c 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt
+++ b/Utilities/otbopenjpeg/libopenjpeg/CMakeLists.txt
@@ -53,21 +53,13 @@ INSTALL(TARGETS ${OPENJPEG_LIBRARY_NAME}
 )
 
 # Install includes files
-#INSTALL(FILES openjpeg.h
-#  DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers
-#)
-#INSTALL(CODE
-#  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${OPENJPEG_INSTALL_SUBDIR}/openjpeg.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg.h)")
-
-#INSTALL(FILES ${OPENJPEG_BINARY_DIR}/openjpeg_mangle.h
-#  DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers
-#)
-#INSTALL(CODE
-#  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${OPENJPEG_INSTALL_SUBDIR}/openjpeg_mangle.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg_mangle.h)")
-
-
+INSTALL(FILES openjpeg.h
+  DESTINATION ${OPENJPEG_INSTALL_INCLUDE_DIR}/${OPENJPEG_INSTALL_SUBDIR} COMPONENT Headers
+)
+INSTALL(CODE
+  "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink ${OPENJPEG_INSTALL_SUBDIR}/openjpeg.h \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${OPENJPEG_INSTALL_INCLUDE_DIR}/openjpeg.h)")
 
 # install man page of the library
-#INSTALL(
-#  FILES       ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjpeg.3
-#  DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man3)
+INSTALL(
+  FILES       ${OPENJPEG_SOURCE_DIR}/doc/man/man3/libopenjpeg.3
+  DESTINATION ${OPENJPEG_INSTALL_MAN_DIR}/man3)
diff --git a/Utilities/otbopenjpeg/libopenjpeg/cidx_manager.c b/Utilities/otbopenjpeg/libopenjpeg/cidx_manager.c
old mode 100644
new mode 100755
diff --git a/Utilities/otbopenjpeg/libopenjpeg/cidx_manager.h b/Utilities/otbopenjpeg/libopenjpeg/cidx_manager.h
old mode 100644
new mode 100755
diff --git a/Utilities/otbopenjpeg/libopenjpeg/indexbox_manager.h b/Utilities/otbopenjpeg/libopenjpeg/indexbox_manager.h
old mode 100644
new mode 100755
diff --git a/Utilities/otbopenjpeg/libopenjpeg/j2k.c b/Utilities/otbopenjpeg/libopenjpeg/j2k.c
index 281b087fc9d7cd677052540d3f0eab6c5d41e6b0..379f8bee73a3d5e358034cbdf0e5299f8a214be3 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/j2k.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/j2k.c
@@ -8376,9 +8376,18 @@ opj_bool j2k_get_tile(	opj_j2k_v2_t *p_j2k,
 	l_tile_y = tile_index / p_j2k->m_cp.tw;
 
 	p_image->x0 = l_tile_x * p_j2k->m_cp.tdx + p_j2k->m_cp.tx0;
+	if (p_image->x0 < p_j2k->m_private_image->x0)
+		p_image->x0 = p_j2k->m_private_image->x0;
 	p_image->x1 = (l_tile_x + 1) * p_j2k->m_cp.tdx + p_j2k->m_cp.tx0;
+	if (p_image->x1 > p_j2k->m_private_image->x1)
+		p_image->x1 = p_j2k->m_private_image->x1;
+
 	p_image->y0 = l_tile_y * p_j2k->m_cp.tdy + p_j2k->m_cp.ty0;
+	if (p_image->y0 < p_j2k->m_private_image->y0)
+		p_image->y0 = p_j2k->m_private_image->y0;
 	p_image->y1 = (l_tile_y + 1) * p_j2k->m_cp.tdy + p_j2k->m_cp.ty0;
+	if (p_image->y1 > p_j2k->m_private_image->y1)
+		p_image->y1 = p_j2k->m_private_image->y1;
 
 	l_img_comp = p_image->comps;
 	for (compno=0; compno < p_image->numcomps; ++compno)
diff --git a/Utilities/otbopenjpeg/libopenjpeg/jpwl/CMakeLists.txt b/Utilities/otbopenjpeg/libopenjpeg/jpwl/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
index 8665981da51b17c67e71557624941099bdb717d0..3c82498c04942b9f815cd8aa410d49633791ce62 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
@@ -36,7 +36,6 @@
 #define OPENJPEG_H
 
 
-
 /* 
 ==========================================================
    Compiler directives
@@ -87,8 +86,6 @@ typedef unsigned int	OPJ_SIZE_T;
 typedef double			OPJ_FLOAT64;
 typedef float			OPJ_FLOAT32;
 
-#include "openjpeg_mangle.h"
-
 // Avoid compile-time warning because parameter is not used
 #define OPJ_ARG_NOT_USED(x) (void)(x)
 
diff --git a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
index f67e3ee098088bf74767fb81fd456fef4734f2df..d94237e7fbff290e120ab12337e81bc10a4451a6 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/opj_includes.h
@@ -55,8 +55,6 @@
  ==========================================================
 */
 
-#include "openjpeg_mangle_private.h"
-
 /* Ignore GCC attributes if this is not GCC */
 #ifndef __GNUC__
 	#define __attribute__(x) /* __attribute__(x) */
diff --git a/Utilities/otbopenjpeg/libopenjpeg/phix_manager.c b/Utilities/otbopenjpeg/libopenjpeg/phix_manager.c
old mode 100644
new mode 100755
diff --git a/Utilities/otbopenjpeg/libopenjpeg/ppix_manager.c b/Utilities/otbopenjpeg/libopenjpeg/ppix_manager.c
old mode 100644
new mode 100755
diff --git a/Utilities/otbopenjpeg/libopenjpeg/thix_manager.c b/Utilities/otbopenjpeg/libopenjpeg/thix_manager.c
old mode 100644
new mode 100755
diff --git a/Utilities/otbopenjpeg/libopenjpeg/tpix_manager.c b/Utilities/otbopenjpeg/libopenjpeg/tpix_manager.c
old mode 100644
new mode 100755