diff --git a/Utilities/otbopenjpeg/CHANGES b/Utilities/otbopenjpeg/CHANGES
index 0a018b1ac83dd2d09119af8efe9869862c04280a..6ca91d31011cb40cc391f636d27ecd1b8f5961c1 100644
--- a/Utilities/otbopenjpeg/CHANGES
+++ b/Utilities/otbopenjpeg/CHANGES
@@ -5,6 +5,10 @@ What's New for OpenJPEG
 ! : changed
 + : added
 
+December 1, 2011
+* [mickael] fix a warning about a recent commit (1104)
+* [jmalik]  fix warnings when printing large integers
+
 November 30, 2011
 * [jmalik] implement Large File support in the library :
            - fix portability layer for windows (need WIN32)
diff --git a/Utilities/otbopenjpeg/CMakeLists.txt b/Utilities/otbopenjpeg/CMakeLists.txt
index 405afafe0cc88a958d854026cf864df239e5bf7a..f582686b4ad35e99e0437dd261d985cd3cf65664 100644
--- a/Utilities/otbopenjpeg/CMakeLists.txt
+++ b/Utilities/otbopenjpeg/CMakeLists.txt
@@ -36,7 +36,7 @@ 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 "1108")
+SET(OPENJPEG_SVN_REVISION "1076")
 # patch number for OTB modifications applied on top of OPENJPEG_SVN_REVISION (used for .so versioning)
 SET(OPENJPEG_OTB_PATCH "1")
 
@@ -273,4 +273,4 @@ ENDIF(BUILD_TESTING)
 #  FILES       CHANGES 
 #              LICENSE
 #  DESTINATION ${OPENJPEG_INSTALL_DOC_DIR})
-#
+#
\ No newline at end of file
diff --git a/Utilities/otbopenjpeg/libopenjpeg/j2k.c b/Utilities/otbopenjpeg/libopenjpeg/j2k.c
index a3c14c3badacefe7b6c359028c3dda359e4e3744..660e91b09bc7072e27957de48b14f5598800175c 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/j2k.c
+++ b/Utilities/otbopenjpeg/libopenjpeg/j2k.c
@@ -6802,7 +6802,7 @@ opj_bool j2k_decode_tile (	opj_j2k_v2_t * p_j2k,
 
 	l_tcp = &(p_j2k->m_cp.tcps[p_tile_index]);
 	if (! l_tcp->m_data) {
-		j2k_tcp_destroy(&l_tcp);
+		j2k_tcp_destroy(l_tcp);
 		return OPJ_FALSE;
 	}
 
@@ -7735,14 +7735,15 @@ void j2k_dump_MH_index(opj_j2k_v2_t* p_j2k, FILE* out_stream)
 
 	fprintf(out_stream, "Codestream index from main header: {\n");
 
-	fprintf(out_stream, "\t Main header start position=%d\n\t Main header end position=%d\n",
+	fprintf(out_stream, "\t Main header start position=%" OPJ_OFF_F "d\n"
+			            "\t Main header end position=%" OPJ_OFF_F "d\n",
 			cstr_index->main_head_start, cstr_index->main_head_end);
 
 	fprintf(out_stream, "\t Marker list: {\n");
 
 	if (cstr_index->marker){
 		for (it_marker=0; it_marker < cstr_index->marknum ; it_marker++){
-			fprintf(out_stream, "\t\t type=%#x, pos=%d, len=%d\n",
+			fprintf(out_stream, "\t\t type=%#x, pos=%" OPJ_OFF_F "d, len=%d\n",
 					cstr_index->marker[it_marker].type,
 					cstr_index->marker[it_marker].pos,
 					cstr_index->marker[it_marker].len );
@@ -7762,7 +7763,7 @@ void j2k_dump_MH_index(opj_j2k_v2_t* p_j2k, FILE* out_stream)
 
 			if (cstr_index->tile_index[it_tile].tp_index){
 				for (it_tile_part =0; it_tile_part < nb_of_tile_part; it_tile_part++){
-					fprintf(out_stream, "\t\t\t tile-part[%d]: star_pos=%d, end_header=%d, end_pos=%d.\n",
+					fprintf(out_stream, "\t\t\t tile-part[%d]: star_pos=%" OPJ_OFF_F "d, end_header=%" OPJ_OFF_F "d, end_pos=%" OPJ_OFF_F "d.\n",
 							it_tile_part,
 							cstr_index->tile_index[it_tile].tp_index[it_tile_part].start_pos,
 							cstr_index->tile_index[it_tile].tp_index[it_tile_part].end_header,
@@ -7772,7 +7773,7 @@ void j2k_dump_MH_index(opj_j2k_v2_t* p_j2k, FILE* out_stream)
 
 			if (cstr_index->tile_index[it_tile].marker){
 				for (it_marker=0; it_marker < cstr_index->tile_index[it_tile].marknum ; it_marker++){
-					fprintf(out_stream, "\t\t type=%#x, pos=%d, len=%d\n",
+					fprintf(out_stream, "\t\t type=%#x, pos=%" OPJ_OFF_F "d, len=%d\n",
 							cstr_index->tile_index[it_tile].marker[it_marker].type,
 							cstr_index->tile_index[it_tile].marker[it_marker].pos,
 							cstr_index->tile_index[it_tile].marker[it_marker].len );
diff --git a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
index 147ee003c1407dd70b451feb77c4dc6b3072ae82..69540afe1824dd8061817cc2e958edd82b6606c5 100644
--- a/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
+++ b/Utilities/otbopenjpeg/libopenjpeg/openjpeg.h
@@ -77,7 +77,7 @@ typedef int opj_bool; /*FIXME it should be to follow the name of others OPJ_TYPE
 #define OPJ_TRUE 1
 #define OPJ_FALSE 0
 
-// FIXME : should be better defined by configure/CMake test
+/* FIXME : should be better defined by configure/CMake test */
 typedef unsigned int	OPJ_UINT32;
 typedef int				OPJ_INT32;
 typedef unsigned short	OPJ_UINT16;
@@ -89,17 +89,27 @@ typedef double			OPJ_FLOAT64;
 typedef float			OPJ_FLOAT32;
 
 #if (defined(WIN32) || defined(WIN64)) && !defined(__MINGW32__)
+
 typedef signed __int64     OPJ_INT64;
+#define OPJ_INT64_F "I64"
 typedef unsigned __int64   OPJ_UINT64;
+#define OPJ_UINT64_F "I64"
+
 #else
+
 typedef long long          OPJ_INT64;
+#define OPJ_INT64_F "ll"
+
 typedef unsigned long long OPJ_UINT64;
+#define OPJ_UINT64_F "ll"
+
 #endif
 
-/* 64-bit file and blob offset type */
+/* 64-bit file offset type */
 typedef OPJ_INT64 OPJ_OFF_T;
+#define OPJ_OFF_F OPJ_INT64_F
 
-// Avoid compile-time warning because parameter is not used
+/* Avoid compile-time warning because parameter is not used */
 #define OPJ_ARG_NOT_USED(x) (void)(x)
 
 /* 
@@ -1516,11 +1526,7 @@ OPJ_API opj_jp2_metadata_t* OPJ_CALLCONV opj_get_jp2_metadata(opj_codec_t *p_cod
 OPJ_API opj_jp2_index_t* OPJ_CALLCONV opj_get_jp2_index(opj_codec_t *p_codec);
 
 
-/* >>OTB */
-OPJ_API opj_image_t* OPJ_CALLCONV opj_image_create0();
-OPJ_API void opj_copy_image_header(const opj_image_t* p_image_src, opj_image_t* p_image_dest);
-/* <<OTB */
- 
+
 
 
 #ifdef __cplusplus