diff --git a/Code/Visu/otbImageWidgetBase.txx b/Code/Visu/otbImageWidgetBase.txx
index 0e81e5ed7bf40da2fa0f44c572cf5e4a31d0814b..659edaa32b6b99354f09a939ae3bdc39f661c4bb 100644
--- a/Code/Visu/otbImageWidgetBase.txx
+++ b/Code/Visu/otbImageWidgetBase.txx
@@ -179,12 +179,14 @@ ImageWidgetBase<TPixel>
 {
   m_Image=image;
   m_Image->UpdateOutputInformation();
+  
   SizeType size;
   size.Fill(0);
   m_BufferedRegion.SetSize(size);
   SizeType displaySize;
   displaySize[0]=this->w();
   displaySize[1]=this->h();
+  
   m_ViewedRegion.SetSize(displaySize);
   m_ViewedRegion.Crop(m_Image->GetLargestPossibleRegion());
 }
@@ -298,14 +300,10 @@ ImageWidgetBase<TPixel>
       m_ImageOverlay->SetRequestedRegion(m_BufferedRegion);
       m_ImageOverlay->PropagateRequestedRegion();
       m_ImageOverlay->UpdateOutputData();
+      RebuildOpenGlImageOverlayBuffer();
     }
   }
  
-  if(m_ImageOverlayVisible)
-  {
-    RebuildOpenGlImageOverlayBuffer();
-  }
-
   if (!this->valid())
   {
     valid(1);
@@ -327,7 +325,7 @@ ImageWidgetBase<TPixel>
   glRasterPos2i(0,0);
 
 #ifndef OTB_GL_USE_ACCEL
-  glPixelZoom(m_OpenGlIsotropicZoom ,m_OpenGlIsotropicZoom);
+  glPixelZoom(m_OpenGlIsotropicZoom, m_OpenGlIsotropicZoom);
 
   // display the image
   glDrawPixels(m_BufferedRegion.GetSize()[0],
@@ -428,7 +426,6 @@ ImageWidgetBase<TPixel>
       //otbMsgDebugMacro(<<"Deleting previous buffer ...");
     delete [] m_OpenGlBuffer;
   }
-  //otbMsgDebugMacro(<<"Buffered region: "<<m_BufferedRegion); 
   unsigned int bufferLenght = 4*m_BufferedRegion.GetNumberOfPixels();
   //otbMsgDebugMacro(<<"New buffer lenght: "<<bufferLenght);
   m_OpenGlBuffer = new unsigned char[bufferLenght];