diff --git a/Modules/Applications/AppClassification/test/CMakeLists.txt b/Modules/Applications/AppClassification/test/CMakeLists.txt
index 05a834ae61eb8b106a2de005cc4f728566f4bc81..2bc24e7161831fe9a2bc0ee9426291ba5a8b0a22 100644
--- a/Modules/Applications/AppClassification/test/CMakeLists.txt
+++ b/Modules/Applications/AppClassification/test/CMakeLists.txt
@@ -606,10 +606,10 @@ otb_test_application(NAME apTvClKMeansImageClassification
                              -maxit 10000
                              -ct 0.0000001
                              -rand 121212
-                             -out ${TEMP}/apTvClKMeansImageClassificationFilterOuptut.tif
+                             -out ${TEMP}/apTvClKMeansImageClassificationFilterOutput.tif
                      VALID   --compare-image ${NOTOL}
-                             ${OTBAPP_BASELINE}/apTvClKMeansImageClassificationFilterOuptut.tif
-                             ${TEMP}/apTvClKMeansImageClassificationFilterOuptut.tif )
+                             ${OTBAPP_BASELINE}/apTvClKMeansImageClassificationFilterOutput.tif
+                             ${TEMP}/apTvClKMeansImageClassificationFilterOutput.tif )
 
 
 #----------- TrainImagesClassifier TESTS ----------------
diff --git a/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx b/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
index 5af54d5e51264e73001a4bf2c783f13ee8ba52d0..1aa1c471e300c643d8bec640e48b7949cea0b110 100644
--- a/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
+++ b/Modules/Applications/AppMathParserX/app/otbBandMathX.cxx
@@ -201,6 +201,8 @@ private:
           }
         catch(itk::ExceptionObject& err)
           {
+          //trick to prevent unreferenced local variable warning on MSVC
+          (void)err;
           // silent catch
           useContext = false;
           }
diff --git a/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx b/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx
index 0428b2dfda3fae1ea314236405af024b22a11afc..045b6b321d445a75680f607a277b1c61f645c9a3 100644
--- a/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx
+++ b/Modules/Applications/AppVectorDataTranslation/app/otbRasterization.cxx
@@ -73,7 +73,7 @@ private:
     AddParameter(ParameterType_InputVectorData,  "in",   "Input vector dataset");
     SetParameterDescription( "in", "The input vector dataset to be rasterized" );
 
-    AddParameter(ParameterType_OutputImage,  "out",   "Ouptut image");
+    AddParameter(ParameterType_OutputImage,  "out",   "Output image");
     SetParameterDescription( "out", "An output image containing the rasterized vector dataset" );
 
     AddParameter(ParameterType_InputImage,  "im",   "Input reference image");
diff --git a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.txx b/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.txx
index 727fd0240e2b31c42847e1913767395692405296..e1d1c6afe9b6dbe269f63cb3731840dfe40fea39 100644
--- a/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.txx
+++ b/Modules/Detection/RoadExtraction/include/otbNeighborhoodScalarProductFilter.txx
@@ -154,7 +154,7 @@ NeighborhoodScalarProductFilter<TInputImage, TOutputModulus, TOutputDirection>
         angle -= CONST_PI;
         }
 
-      // Set the ouptut values
+      // Set the output values
       outputIt.Set(scalarMaxValue);
       outputDirIt.Set(angle);
       ++neighInputIt;
diff --git a/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.txx b/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.txx
index 8bf96a5035db4f9801e3d7d34606f7956de06cff..b19a1919f173d843771a8dbef9de7ef6cf7035e0 100644
--- a/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.txx
+++ b/Modules/Filtering/Convolution/include/otbOverlapSaveConvolutionImageFilter.txx
@@ -265,7 +265,7 @@ OverlapSaveConvolutionImageFilter<TInputImage, TOutputImage, TBoundaryCondition>
     norm = 1.0;
     }
 
-  // Fill the ouptut image
+  // Fill the output image
   outputIt.GoToBegin();
   while (!outputIt.IsAtEnd())
     {
diff --git a/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h b/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
index 9aa1e9e57e30e455a9a1479711fa91fb43b8c57e..e755f1f3503847f40d81fcb6039b97e513ccc83c 100644
--- a/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
+++ b/Modules/Filtering/Projection/include/otbGenericRSResampleImageFilter.h
@@ -198,7 +198,7 @@ public:
   void SetOutputParametersFromImage(const ImageBaseType * image);
 
   /** Useful to set output parmaters form an existing image with type
-    * different from input or ouptut image
+    * different from input or output image
     */
   template <class TImageType> void SetOutputParametersFromImage(const TImageType * image);
 
diff --git a/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx b/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx
index bfd574776151b371a20b2231af6da383437749c7..1af2a5cf296e788c8ed1711c0ef8f957d4d04145 100644
--- a/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx
+++ b/Modules/Filtering/Projection/test/otbGenericRSTransformGenericTest.cxx
@@ -34,7 +34,7 @@ int otbGenericRSTransformGenericTest(int argc, char * argv[])
 {
   if(argc<14)
     {
-    std::cerr<<"Usage: "<<argv[0]<<"input_point_x input_point_y output_point_x output_point_y input_projection_type[IMAGE, WKT, EPSG] input_projection_source output_projection_type[IMAGE, WKT, EPSG] output_projection_source input_distance[PHYSICAL, GEO] input_threshold output_distance[PHYSICAL, GEO] ouptut_threshold elevation_flag[NOELEV, AVERAGE, DEM] elevation_source";
+    std::cerr<<"Usage: "<<argv[0]<<"input_point_x input_point_y output_point_x output_point_y input_projection_type[IMAGE, WKT, EPSG] input_projection_source output_projection_type[IMAGE, WKT, EPSG] output_projection_source input_distance[PHYSICAL, GEO] input_threshold output_distance[PHYSICAL, GEO] output_threshold elevation_flag[NOELEV, AVERAGE, DEM] elevation_source";
     return EXIT_FAILURE;
     }
 
diff --git a/Modules/IO/IOGDAL/test/otbGDALOverviewsBuilder.cxx b/Modules/IO/IOGDAL/test/otbGDALOverviewsBuilder.cxx
index 7eda724510b56bc868dc354317ffcdc6fd08e6ff..a33b294eb3064e39b02bd06657d51e398e166871 100644
--- a/Modules/IO/IOGDAL/test/otbGDALOverviewsBuilder.cxx
+++ b/Modules/IO/IOGDAL/test/otbGDALOverviewsBuilder.cxx
@@ -54,7 +54,14 @@ int otbGDALOverviewsBuilder(int itkNotUsed(argc), char* argv[])
 
   otb::GDALImageIO::Pointer io = otb::GDALImageIO::New();
   io->SetFileName(inputFilename);
-  io->CanReadFile(inputFilename);
+  bool canRead = io->CanReadFile(inputFilename);
+
+  if(!canRead)
+    {
+    std::cerr<<"Failed to read file "<< inputFilename <<" with GdalImageIO."<<std::endl;
+    return EXIT_FAILURE;
+    }
+  
   io->ReadImageInformation();
   //std::cout << io->GetOverviewsCount() << std::endl;
 
diff --git a/Modules/Learning/LearningBase/test/CMakeLists.txt b/Modules/Learning/LearningBase/test/CMakeLists.txt
index 598c6e980656924d4be9b4e268de5240eedd30a5..a069af08ffcfbbc3c9c1596595b95c011a1bde7e 100644
--- a/Modules/Learning/LearningBase/test/CMakeLists.txt
+++ b/Modules/Learning/LearningBase/test/CMakeLists.txt
@@ -28,11 +28,11 @@ otb_add_test(NAME leTvDecisionTreeWithRealValues COMMAND otbLearningBaseTestDriv
 
 otb_add_test(NAME leTvKMeansImageClassificationFilter COMMAND otbLearningBaseTestDriver
   --compare-image ${NOTOL}
-  ${BASELINE}/leKMeansImageClassificationFilterOuptut.hdr
-  ${TEMP}/leKMeansImageClassificationFilterOuptut.hdr
+  ${BASELINE}/leKMeansImageClassificationFilterOutput.hdr
+  ${TEMP}/leKMeansImageClassificationFilterOutput.hdr
   otbKMeansImageClassificationFilter
   ${INPUTDATA}/poupees_sub.png
-  ${TEMP}/leKMeansImageClassificationFilterOuptut.hdr
+  ${TEMP}/leKMeansImageClassificationFilterOutput.hdr
   2
   0 0 0 0
   255 255 255 255
diff --git a/Modules/Learning/SOM/test/CMakeLists.txt b/Modules/Learning/SOM/test/CMakeLists.txt
index 50b0cea9685bb72c226e2eba7606c6572ed9ab6b..f0be8a6188bcc4669b85465e8c397803a35ec5ac 100644
--- a/Modules/Learning/SOM/test/CMakeLists.txt
+++ b/Modules/Learning/SOM/test/CMakeLists.txt
@@ -41,11 +41,11 @@ otb_add_test(NAME leTvSOM COMMAND otbSOMTestDriver
 otb_add_test(NAME leTvSOMImageClassificationFilter COMMAND otbSOMTestDriver
   --compare-image ${NOTOL}
   ${BASELINE}/leSOMPoupeesClassified.hdr
-  ${TEMP}/leSOMImageClassificationFilterOuptut.hdr
+  ${TEMP}/leSOMImageClassificationFilterOutput.hdr
   otbSOMImageClassificationFilter
   ${INPUTDATA}/poupees_sub.png
   ${BASELINE}/leSOMPoupeesSubOutputMap1.hdr
-  ${TEMP}/leSOMImageClassificationFilterOuptut.hdr
+  ${TEMP}/leSOMImageClassificationFilterOutput.hdr
   )
 
 otb_add_test(NAME leTvSOMActivationBuilder COMMAND otbSOMTestDriver
@@ -112,11 +112,11 @@ otb_add_test(NAME leTvSOMClassifier COMMAND otbSOMTestDriver
 
 otb_add_test(NAME leTvSOMbasedImageFilter COMMAND otbSOMTestDriver
   --compare-image ${NOTOL}
-  ${BASELINE}/leSOMbasedImageFilterOuptut.hdr
-  ${TEMP}/leSOMbasedImageFilterOuptut.hdr
+  ${BASELINE}/leSOMbasedImageFilterOutput.hdr
+  ${TEMP}/leSOMbasedImageFilterOutput.hdr
   otbSOMbasedImageFilterTest
   ${INPUTDATA}/poupees_sub.png
   ${BASELINE}/leSOMPoupeesSubOutputMap1.hdr
-  ${TEMP}/leSOMbasedImageFilterOuptut.hdr
+  ${TEMP}/leSOMbasedImageFilterOutput.hdr
   )
 
diff --git a/Modules/Learning/Sampling/include/otbPolygonClassStatisticsAccumulator.h b/Modules/Learning/Sampling/include/otbPolygonClassStatisticsAccumulator.h
index 4807effe5c92ee01d3c9c23abc24bfcb7076d41f..0a1e1c2d501812e3a8521c8e5455d905aea72f6e 100644
--- a/Modules/Learning/Sampling/include/otbPolygonClassStatisticsAccumulator.h
+++ b/Modules/Learning/Sampling/include/otbPolygonClassStatisticsAccumulator.h
@@ -62,9 +62,10 @@ public:
 
 protected:
   /** Constructor */
-  PolygonClassStatisticsAccumulator() {}
+  PolygonClassStatisticsAccumulator();
+    
   /** Destructor */
-  virtual ~PolygonClassStatisticsAccumulator() {}
+  virtual ~PolygonClassStatisticsAccumulator();
 
 private:
   //Number of pixels in all the polygons
diff --git a/Modules/Learning/Sampling/src/otbPolygonClassStatisticsAccumulator.cxx b/Modules/Learning/Sampling/src/otbPolygonClassStatisticsAccumulator.cxx
index 28002be97a536a753b502c38d7794a963aadf5c3..0652e9b3a95f768381a918e114eec22928b63b28 100644
--- a/Modules/Learning/Sampling/src/otbPolygonClassStatisticsAccumulator.cxx
+++ b/Modules/Learning/Sampling/src/otbPolygonClassStatisticsAccumulator.cxx
@@ -21,6 +21,15 @@
 namespace otb
 {
 
+PolygonClassStatisticsAccumulator::PolygonClassStatisticsAccumulator() :
+  m_NbPixelsGlobal(0UL),
+  m_ElmtsInClass(),
+  m_Polygon()
+{}
+  
+PolygonClassStatisticsAccumulator::~PolygonClassStatisticsAccumulator()
+{}
+
 void
 PolygonClassStatisticsAccumulator
 ::Reset()
diff --git a/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.txx b/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.txx
index fd25930bc7b48d87af48f9913e7db57eeeb563c8..605a8ace1a1b40067dd43cf0d6794cec8bf92217 100644
--- a/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.txx
+++ b/Modules/OBIA/RCC8/include/otbImageMultiSegmentationToRCC8GraphFilter.txx
@@ -133,7 +133,7 @@ ImageMultiSegmentationToRCC8GraphFilter<TInputImage, TOutputGraph>
   // Input image list pointer
   InputImageListPointerType segList = this->GetInput();
 
-  // Ouptut graph pointer
+  // Output graph pointer
   OutputGraphPointerType graph = this->GetOutput();
 
   // invert value vector
diff --git a/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.txx b/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.txx
index bc110e0a0d379e10e4a3da0a11a5508f75e89955..4bcb28a02a93cf180d5c441b03b65ed356ab5f9b 100644
--- a/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.txx
+++ b/Modules/OBIA/RCC8/include/otbPolygonListToRCC8GraphFilter.txx
@@ -179,7 +179,7 @@ void
 PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
 ::BeforeThreadedGenerateData()
 {
-  // Ouptut graph pointer
+  // Output graph pointer
   OutputGraphPointerType      graph = this->GetOutput();
   PolygonListConstPointerType inputPtr = this->GetInput();
 
@@ -227,7 +227,7 @@ PolygonListToRCC8GraphFilter<TPolygonList, TOutputGraph>
 {
   //std::cout<<"Starting thread "<<threadId <<" to work on range ["<<startIndex<<", "<<stopIndex<<"]"<<std::endl;
 
-  // Ouptut graph pointer
+  // Output graph pointer
   OutputGraphPointerType      graph = this->GetOutput();
   PolygonListConstPointerType inputPtr = this->GetInput();
 
diff --git a/Modules/OBIA/RCC8/test/CMakeLists.txt b/Modules/OBIA/RCC8/test/CMakeLists.txt
index 5454c85c35cc1540abee4e2bc2bdcce663d1f174..4b3e5bfafb833e9f2a3470299e41077ee573a3fa 100644
--- a/Modules/OBIA/RCC8/test/CMakeLists.txt
+++ b/Modules/OBIA/RCC8/test/CMakeLists.txt
@@ -53,10 +53,10 @@ otb_add_test(NAME srTvRCC8GraphIOEndToEnd COMMAND otbRCC8TestDriver
 
 otb_add_test(NAME srTvPolygonListToRCC8GraphFilter COMMAND otbRCC8TestDriver
   --compare-ascii ${NOTOL}
-  ${BASELINE_FILES}/srTvPolygonListToRCC8GraphFilterOuptut.dot
-  ${TEMP}/srTvPolygonListToRCC8GraphFilterOuptut.dot
+  ${BASELINE_FILES}/srTvPolygonListToRCC8GraphFilterOutput.dot
+  ${TEMP}/srTvPolygonListToRCC8GraphFilterOutput.dot
   otbPolygonListToRCC8GraphFilter
-  ${TEMP}/srTvPolygonListToRCC8GraphFilterOuptut.dot)
+  ${TEMP}/srTvPolygonListToRCC8GraphFilterOutput.dot)
 
 otb_add_test(NAME srTvRCC8VertexBase COMMAND otbRCC8TestDriver
   otbRCC8VertexBase
diff --git a/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h b/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h
index ded18110e7aca6ee33b543c9340179c4f47c7e64..99c547e07e73759eac80f9c0fd9e02509f2fc440 100644
--- a/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h
+++ b/Modules/Registration/DisparityMap/include/otbDisparityMapEstimationMethod.h
@@ -33,7 +33,7 @@ namespace otb
  *
  *  It uses the ITK registration framework locally for each point and thus
  *  provides the flexibility of this framework. The parameters of each transform
- *  are stored in the ouptut point set associated data. Optimizer, metric,
+ *  are stored in the output point set associated data. Optimizer, metric,
  *  interpolator and transform fixed parameters have to be set by the user.
  *
  *  This filters returns the pointset enriched with a set of value as PointData, in order of apparition :
@@ -77,7 +77,7 @@ public:
   typedef typename MovingImageType::Pointer   MovingImagePointerType;
   typedef typename MovingImageType::PixelType MovingPixelType;
 
-  /** Typedef for the input and ouptut point set */
+  /** Typedef for the input and output point set */
   typedef TPointSet                      PointSetType;
   typedef typename PointSetType::Pointer PointSetPointerType;
 
diff --git a/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.txx b/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.txx
index 40a3289c2b76c0215993cdd8282a168017127797..253a73496a2097d125086d044f10b91350df0f3a 100644
--- a/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.txx
+++ b/Modules/Registration/Stereo/include/otbStereoSensorModelToElevationMapFilter.txx
@@ -284,7 +284,7 @@ StereoSensorModelToElevationFilter<TInputImage, TOutputHeight>
   rsTransform->SetInputKeywordList(outputPtr->GetImageKeywordlist());
   rsTransform->InstanciateTransform();
 
-  // Fill ouptut
+  // Fill output
   itk::ImageRegionIteratorWithIndex<OutputImageType> outputIt(outputPtr, outputPtr->GetBufferedRegion());
 
   for(outputIt.GoToBegin(); !outputIt.IsAtEnd(); ++outputIt)
diff --git a/Modules/ThirdParty/6S/src/main.c b/Modules/ThirdParty/6S/src/main.c
index 6475b72f7d2eaca32e7206d43d9b74c69829ed66..7c6bf6ecd1d9193dad38689e5c67f95b2259be15 100644
--- a/Modules/ThirdParty/6S/src/main.c
+++ b/Modules/ThirdParty/6S/src/main.c
@@ -4877,7 +4877,7 @@ L34:
  */
 /*                                                                      c 
 */
-/*       irapp   that input parameter allows to activate atmospheric    c 
+/*       irapp   that input parameter allows activating atmospheric     c 
 */
 /*               correction mode                                        c 
 */
diff --git a/Modules/ThirdParty/6S/src/main.f b/Modules/ThirdParty/6S/src/main.f
index 718509233795011c892ae7848816d8cdbe5b39ee..5a60d980f83294fdc43588505a775d2ee04baa4d 100644
--- a/Modules/ThirdParty/6S/src/main.f
+++ b/Modules/ThirdParty/6S/src/main.f
@@ -2163,7 +2163,7 @@ c**********************************************************************c
  
 c**********************************************************************c
 c                                                                      c
-c       irapp   that input parameter allows to activate atmospheric    c
+c       irapp   that input parameter allows activating atmospheric     c
 c               correction mode                                        c
 c                                                                      c
 c		-1: No atmospheric Correction is performed             c
diff --git a/Modules/ThirdParty/6S/src/otb_main6S_function.c b/Modules/ThirdParty/6S/src/otb_main6S_function.c
index e59d02e4af82e555fb73fe080a094bc3ca49cd98..af18dffe850da0e4c6c8a7642a467e5b9ee636b5 100644
--- a/Modules/ThirdParty/6S/src/otb_main6S_function.c
+++ b/Modules/ThirdParty/6S/src/otb_main6S_function.c
@@ -3617,7 +3617,7 @@ rguments*/
  */
 /*                                                                      c 
 */
-/*       irapp   that input parameter allows to activate atmospheric    c 
+/*       irapp   that input parameter allows activating atmospheric     c 
 */
 /*               correction mode                                        c 
 */
diff --git a/Modules/ThirdParty/6S/src/otb_main6S_function.f b/Modules/ThirdParty/6S/src/otb_main6S_function.f
index 5bad2a4178d78d60b477bfe56ddbdb92504e83cc..ce73bba98953ba4eec04d481cdf7c3e86d227af0 100644
--- a/Modules/ThirdParty/6S/src/otb_main6S_function.f
+++ b/Modules/ThirdParty/6S/src/otb_main6S_function.f
@@ -2282,7 +2282,7 @@ C_otb_adaptation End: inhomo=0 idirec=0 igroun=0 ro=0
  
 c**********************************************************************c
 c                                                                      c
-c       irapp   that input parameter allows to activate atmospheric    c
+c       irapp   that input parameter allows activating atmospheric     c
 c               correction mode                                        c
 c                                                                      c
 c		-1: No atmospheric Correction is performed             c
diff --git a/Modules/Visualization/Ice/include/otbGlView.h b/Modules/Visualization/Ice/include/otbGlView.h
index 4d1c87f3635e8fde2c5a6422291a4310919e323f..4538835ec7a0d238059402307c2560db438154eb 100644
--- a/Modules/Visualization/Ice/include/otbGlView.h
+++ b/Modules/Visualization/Ice/include/otbGlView.h
@@ -698,11 +698,13 @@ GlView
   // as 1:1 reference).
   //
   // MANTIS-1202
+  //
+  // MANTIS-1203: restore sign of axis when applying isotrop spacing.
   // {
   if( vcl_abs( spacing[ 0 ] ) < vcl_abs( spacing[ 1 ] ) )
-    spacing[ 1 ] = spacing[ 0 ];
+    spacing[ 1 ] = ( spacing[ 1 ]<0.0 ? -1 : +1 ) * vcl_abs( spacing[ 0 ] );
   else
-    spacing[ 0 ] = spacing[ 1 ];
+    spacing[ 0 ] = ( spacing[ 0 ]<0.0 ? -1 : +1 ) * vcl_abs( spacing[ 1 ] );
   // }
   // MANTIS-1202
 
diff --git a/Modules/Visualization/Ice/src/otbFragmentShaderRegistry.cxx b/Modules/Visualization/Ice/src/otbFragmentShaderRegistry.cxx
index fb17d100af414e098174c4720abc129c8b415387..6cc5b293ccca85eae27c9a875b90a63cc92d6336 100644
--- a/Modules/Visualization/Ice/src/otbFragmentShaderRegistry.cxx
+++ b/Modules/Visualization/Ice/src/otbFragmentShaderRegistry.cxx
@@ -71,6 +71,8 @@ void FragmentShaderRegistry::RegisterShader(const std::string& name, const std::
     char * logs = new char[length];
     glGetShaderInfoLog(shader,1000,&length,logs);
 
+    std::string slogs = logs;
+    
     delete [] logs;
     // For safety!
     logs = NULL;
@@ -83,7 +85,7 @@ void FragmentShaderRegistry::RegisterShader(const std::string& name, const std::
     glDeleteProgram( program );
     program = 0;
     
-    itkExceptionMacro(<<"Shader "<<name<<" with sources "<<source<<" failed to compile: "<<logs);
+    itkExceptionMacro(<<"Shader "<<name<<" with sources "<<source<<" failed to compile: "<<slogs);
     }
 
   glAttachShader(program,shader);
diff --git a/Modules/Visualization/Ice/src/otbGlImageActor.cxx b/Modules/Visualization/Ice/src/otbGlImageActor.cxx
index 7f4097ead63a737a58fdc797551dd88c34c5a03b..efc798505119e415c674aad1548d005f40516973 100644
--- a/Modules/Visualization/Ice/src/otbGlImageActor.cxx
+++ b/Modules/Visualization/Ice/src/otbGlImageActor.cxx
@@ -348,7 +348,6 @@ void GlImageActor::Render()
       mins.Fill(0);
       maxs.Fill(255);
 
-      bool useNoData(false);
       double noData(0.);
 
       assert( !m_ImageSettings.IsNull() );
@@ -367,12 +366,14 @@ void GlImageActor::Render()
 
       gamma =
 	gamma == 0.0
-	? std::numeric_limits< double >::max()
-	: 1.0 / gamma;
+        ? std::numeric_limits< double >::max()
+        : 1.0 / gamma;
       // }
-
+      
+     
       if( m_ImageSettings->GetUseNoData() )
-	noData = m_ImageSettings->GetNoData();
+        noData = m_ImageSettings->GetNoData();
+
       
       omins.Fill( 0 );
       omaxs.Fill( 255 );
@@ -405,7 +406,7 @@ void GlImageActor::Render()
         ++idx;
         buffer[idx] = 255;
 
-        if(useNoData && (inIt.Get()[0] == noData ||inIt.Get()[1] == noData ||inIt.Get()[2] == noData))
+        if(m_ImageSettings->GetUseNoData() && (inIt.Get()[0] == noData ||inIt.Get()[1] == noData ||inIt.Get()[2] == noData))
           {
           buffer[idx] = 0;
           }
diff --git a/Modules/Visualization/IceViewer/src/otbIce.cxx b/Modules/Visualization/IceViewer/src/otbIce.cxx
index 8d4f808e810ad4894c6888c79a8c68ef393a05d0..6d3ec67a9470c081c028deff77f377dfeadc9ce8 100644
--- a/Modules/Visualization/IceViewer/src/otbIce.cxx
+++ b/Modules/Visualization/IceViewer/src/otbIce.cxx
@@ -83,6 +83,11 @@ int main(int argc, char * argv[])
         std::cerr << "Could not open file " << argv[i] << " as an image or a vector, skipping." << std::endl;
         }
       }
+    catch(std::runtime_error & err)
+      {
+      std::cerr<<"Runtime error: "<< err.what() <<std::endl;
+      return EXIT_FAILURE;
+      }
     }
 
   std::cout<<"Press F1 for help"<<std::endl;
diff --git a/Modules/Visualization/IceViewer/src/otbIceViewer.cxx b/Modules/Visualization/IceViewer/src/otbIceViewer.cxx
index b6fe632b2ee6c9071b179ffb474a6c7c91162027..3782d2705e19383295bb573598d1a92228f4b7f9 100644
--- a/Modules/Visualization/IceViewer/src/otbIceViewer.cxx
+++ b/Modules/Visualization/IceViewer/src/otbIceViewer.cxx
@@ -1642,7 +1642,7 @@ void IceViewer::CopyActorStyle(otb::GlActor::Pointer srcActor, otb::GlActor::Poi
   otb::GlImageActor::Pointer srcImgActor = dynamic_cast<otb::GlImageActor*>(srcActor.GetPointer());
   otb::GlImageActor::Pointer dstImgActor = dynamic_cast<otb::GlImageActor*>(dstActor.GetPointer());
 
-  if(srcActor.IsNotNull() && srcActor->GetVisible() && dstImgActor.IsNotNull() && dstActor->GetVisible())
+  if(srcImgActor.IsNotNull() && srcActor->GetVisible() && dstImgActor.IsNotNull() && dstActor->GetVisible())
     {
     ImageSettings::Pointer srcImageSettings( srcImgActor->GetImageSettings() );
     assert( !srcImageSettings.IsNull() );
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index a8edf18c80ea26155bffaa646b9ef45d9e0275ec..d3b8167f5f86235982ccfb0254ae40d25f45e569 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,36 +1,90 @@
-OTB-v.5.4.0 - Changes since version 5.2.1 (2016/03/30)
+OTB-v.5.4.0 - Changes since version 5.2.1 (2016/05/04)
 ------------------------------------------
-* Bugs fixed:
-  * 0001137: GDALImageIO does not support SENTINEL2 sub-datasets
-  * 0001142: Fails to build with ITK 4.9.0 (itksys/FundamentalType.h: No such file or directory)
-  * 0001151: GDAL_SB_EXTRA_OPTIONS can not take multiple options
-  * 0001150: Can't "easily" deactivate LIBKML from OTB Superbuild
-  * BUG: Report the correct number of components per pixel in ImportGeoInformationImageFilter
-  * 0001153: Superimpose app in PHR mode reports wrong origin/spacing/keywordlist
-  * BUG: Enabling KMeans with more than 255 clusters
-  * 0001154: Exception raised when opening LUM or LUM+HDR
-  * 0001157: monteverdi crashes when trying to move the view without any images
-  * 0001143: Patch for various spelling errors
-
-* RFC:
-  * Request for Changes-20: Take screenshot
-  * Request for Changes-21: Support CDS import
-  * Request for Changes-22: Add Masked Iterator Decorator
-  * Request for Changes-23: Ice as an Orfeo ToolBox module
-  * Request for Changes-25: Disable Ice shaders if OpenGL version is lower than 2.0
-  * Request for Changes-27: Merge Software Guide into OTB
-  * Request for Changes-28: Remove random contributor list functionality
-  * Request for Changes-29: Sampling Framework - Polygon analysis
-  * Request for Changes-30: Faster resampling filter
-  * Request for Changes-31: Modified behavior of reading/writing of TIFF RPC tags
-  * Request for Changes-32: Allow a module to be built outside the OTB source tree
-  * Request for Changes-33: Green dashboard cleaning part 1
-  * Request for Changes-34: Enhancement of SARDecompositions : Barnes, Huynen, Pauli decompositions
-  * Request for Changes-24: MVD/OTB GDAL overviews multi-resolution pyramid configuration
-
+* Core
+  * Ice is now a regular OTB module (RFC 23)
+  * Masked iterator decorator (RFC 22)
+  * Filter to analyse polygons for available samples (part of new sampling framework, RFC 29)
+  * Faster resampling filter for rigid scaling and translation operations (RFC 30)
+  * Modified behavior of reading/writing of TIFF RPC tags (RFC 31)
+  * Allow a module to be built outside the OTB source tree (RFC 32)
+  * Dashboard cleaning, part 1 (RFC 33)
+  * Enhancement of SARDecompositions : Barnes, Huynen, Pauli decompositions (RFC 34)
+  
+* Monteverdi
+  * Take screenshot of current display (RFC 20)
+  * Allow subdatasets import (RFC 21)
+  * Disable GLSL shader if OpenGL version is lower than 2.0 (RFC 25)
+  * Allow generation of gdal overviews when importing images (RFC 24)
+
+* Documentation:
+  * Merge software guide into main OTB repository (RFC 17)
+  * Remove random contributor list generation (RFC 28)
+   
 * SuperBuild:
   * Add Monteverdi and its dependencies (glfw, GLEW, glut)
 
+* Bug fixed
+
+  * Monteverdi2
+    * 0001179: Using the Upper Bound mode for resolution lookup in preferences result in wrong resolution used
+    * 0001197: Clicking on minimap to navigate result in monteverdi crashing
+    * 0001178: Zoom to full resolution does not zoom to 1 image pixel = 1 screen pixel for georeferenced data
+    * 0001203: Clicking on 1:1 button several time result in strange cycling behaviour
+    * 0001205: Gamma slider effect inverted between full and quicklook view
+    * 0001202: Wrong aspect ratio at loading
+    * 0001148: OTB-applications not loaded
+    * 0001196: OTB-application Quit button closes widget but not window when using Mapla
+    * 0001147: With Monteverdi develop branch of today : opening large images with overview file leads to eating all available memory
+    * 0001138: Numeric value editing hell
+    * 0001136: Unable to open sensor products (with RPC) in Monteverdi
+    * 0001159: TrainImageClassifier sample.vtr parameter is sometime ignored
+    * 0001173: KDE grabs drag event before monteverdi, making image navigation impossible
+    * 0001144: Unable to keep unconstrained dynamic mode
+    * 0001156: Linux standalone package doesn't work on Fedora 22
+    * 0001157: monteverdi crashes when trying to move the view without any images
+    * 0001153: Superimpose app in PHR mode reports wrong origin/spacing/keywordlist
+    * 0001154: Exception raised when opening LUM or LUM+HDR
+    * 0001152: maximum number of class in KMean application limited to 255
+    * 0001140: Lost pixel position informations in layer stack
+
+  * OTB-Packaging
+    * 0001141: muparser 2.2.4 is missing in superbuild archive 5.2.1
+    * 0001171: Crash in OGR : libproj-0.dll not found
+    * 0001150: Can't "easily" deactivate LIBKML from OTB Superbuild
+
+  * Orfeo Toolbox (OTB)
+    * 0001206: Cannot maximize monteverdi window in standalone package
+    * 0001177: SuperBuild fails at MVD configure step (release-5.4 branch)
+    * 0001194: freeglut required x11 extension on osx
+    * 0001188: deactivate openldap, openssl, libssh2 when building superbuild curl.
+    * 0001190: use same compiler for all builds in the superbuild
+    * 0001184: superbuild libtiff is using libjbig from system without warning
+    * 0001185: minimal build of GDAL in superbuild
+    * 0001187: superbuild cannot find Qt4 during OTB configure on osx
+    * 0001193: deactivate finding osx framework for library
+    * 0001163: Windows MinGW packages do not contain the libsvm classifier
+    * 0001164: Monteverdi crashes when opening a tif without projection information
+    * 0001167: GUI applications visual response after clicking the "Execute" button is slow and confusing
+    * 0001158: Missing field in RefineSensorModel statistics file
+    * 0001166: otbgui_MeanShiftSmoothing problem with Mode Search parameter
+    * 0001169: add libsvm package to mxe and enable OTB_USE_LIBSVM
+    * 0001143: Patch for various spelling errors
+    * 0001151: GDAL_SB_EXTRA_OPTIONS can not take multiple options
+    * 0001142: Fails to build with ITK 4.9.0 (itksys/FundamentalType.h: No such file or directory)
+
+  * OTB-lib
+    * 0001145: Ice doesn't clamp rendered values to the specified minimum of the range
+    * 0001139: OGRLayerStreamStitchingFilter CommitTransaction fail is some cases
+    * 0001137: GDALImageIO does not support SENTINEL2 sub-datasets
+
+  * OTB-applications
+    * 0001149: ReadImageInfo application crash with Sentinel1 (SLC SM product)
+    * 0001162: Unable to perform Sentinel-1 SAR calibration on extract
+    * 0001183: Unable to edit image path in Qt GUI wrapper with complex image
+    * 0001182: Crash when editing InputImageParameter Qt widget
+    * 0001161: Inconsistency of SAR calibration applications denomination
+
+
 OTB-v.5.2.1 - Changes since version 5.2.0 (2016/01/19)
 ------------------------------------------
 * Bugs fixed:
diff --git a/SuperBuild/Packaging/PackageHelper.cmake b/SuperBuild/Packaging/PackageHelper.cmake
index 7b643955f7092eacda5c6186a2f127d7c489d650..438815ae911fad1875e05345aa49652f63321cf4 100644
--- a/SuperBuild/Packaging/PackageHelper.cmake
+++ b/SuperBuild/Packaging/PackageHelper.cmake
@@ -611,7 +611,6 @@ function(func_process_deps infile)
           message(STATUS "Processing ${SEARCHDIR}/${infile}")
           is_file_executable("${SEARCHDIR}/${infile}" is_executable)
           if(is_executable)
-            #install(PROGRAMS "${SEARCHDIR}/${infile}" DESTINATION ${PKG_STAGE_DIR}/bin)
             file(APPEND ${CMAKE_BINARY_DIR}/install_to_${DEST_BIN_DIR} "${SEARCHDIR}/${infile}\n")
           else(is_executable)
             get_filename_component(bn_we ${infile} NAME_WE)