diff --git a/Code/IO/otbImage.h b/Code/IO/otbImage.h
index c9a64d31d871a90a5ab84d05d31701365395983d..82f015a2a065acadbd09589962c3510f23aade4b 100644
--- a/Code/IO/otbImage.h
+++ b/Code/IO/otbImage.h
@@ -23,14 +23,8 @@
 #endif
 
 #include "itkImage.h"
-#include "itkDefaultPixelAccessor.h"
-#include "itkDefaultPixelAccessorFunctor.h"
-#include "itkWeakPointer.h"
-#include "itkNeighborhoodAccessorFunctor.h"
-
 #include "otbImageBase.h"
 
-#include <iostream>
 #include <string.h>
 
 namespace otb
diff --git a/Code/IO/otbImageBase.h b/Code/IO/otbImageBase.h
index bfcb97216ea328c4c53df5cbbd99fa0cd2589b91..8c22b530798a60134a93e48d6b099a0099fcdb00 100644
--- a/Code/IO/otbImageBase.h
+++ b/Code/IO/otbImageBase.h
@@ -27,7 +27,6 @@
 #include "otbMetaDataKey.h"
 #include "otbImageKeywordlist.h"
 
-#include <iostream>
 #include <string>
 
 namespace otb
diff --git a/Code/IO/otbImageFileReader.h b/Code/IO/otbImageFileReader.h
index 01bb7017a5390c3711e21afd9e50ad3e30e779fc..cddfa3bbb242e7efb2b4dd4075165e528383fccc 100644
--- a/Code/IO/otbImageFileReader.h
+++ b/Code/IO/otbImageFileReader.h
@@ -19,10 +19,6 @@
 #define __otbImageFileReader_h
 
 #include "itkImageFileReader.h"
-#include "itkExceptionObject.h"
-#include "itkSize.h"
-#include "itkImageRegion.h"
-#include "itkDefaultConvertPixelTraits.h"
 
 namespace otb
 {
diff --git a/Code/IO/otbImageFileReader.txx b/Code/IO/otbImageFileReader.txx
index ee06bfb4655791bf8262d925ec4fcddac6d339c0..7670f18cd6af1ae751a5f9c682752223586d6a16 100644
--- a/Code/IO/otbImageFileReader.txx
+++ b/Code/IO/otbImageFileReader.txx
@@ -19,18 +19,13 @@
 #define __otbImageFileReader_txx
 #include "otbImageFileReader.h"
 
-#include "itkObjectFactory.h"
-#include "itkConvertPixelBuffer.h"
-#include "itkImageRegion.h"
-#include "itkPixelTraits.h"
-#include "itkVectorImage.h"
 #include "itkMetaDataObject.h"
 
 #include "otbMacro.h"
 #include "otbSystem.h"
 #include "otbImageIOFactory.h"
-#include "otbMetaDataKey.h"
 #include "otbImageKeywordlist.h"
+#include "otbMetaDataKey.h"
 
 #include "imaging/ossimImageHandlerRegistry.h"
 #include "ossim/imaging/ossimImageHandlerSarFactory.h"
diff --git a/Code/IO/otbImageFileWriter.h b/Code/IO/otbImageFileWriter.h
index 03c1695f3951354fd139dd4c726fc287e423454b..1c2c27387be28c64e47a03aeb97c033a03322d57 100644
--- a/Code/IO/otbImageFileWriter.h
+++ b/Code/IO/otbImageFileWriter.h
@@ -19,10 +19,6 @@
 #define __otbImageFileWriter_h
 
 #include "itkImageFileWriter.h"
-#include "itkImageIOBase.h"
-#include "itkExceptionObject.h"
-#include "itkSize.h"
-#include "itkImageIORegion.h"
 
 namespace otb
 {
@@ -37,8 +33,8 @@ namespace otb
  *
  */
 
-// Le 3ieme parametre template est bidon MAIS necessaire pour compiler avec Microsoft Visual C++ 6.0
-template <class TInputImage, unsigned int toto=0>
+
+template <class TInputImage>
 class ITK_EXPORT ImageFileWriter : public itk::ImageFileWriter<TInputImage>
 {
 public:
diff --git a/Code/IO/otbImageFileWriter.txx b/Code/IO/otbImageFileWriter.txx
old mode 100644
new mode 100755
index aacfc7e14f10fbd480f0c330b419c658917a4153..42b89ca4de5b7364fd32088f8e6de2564ba17dc0
--- a/Code/IO/otbImageFileWriter.txx
+++ b/Code/IO/otbImageFileWriter.txx
@@ -22,9 +22,7 @@
 #include "otbImageIOFactory.h"
 
 #include "itkObjectFactoryBase.h"
-#include "itkCommand.h"
 #include "vnl/vnl_vector.h"
-#include "itkVectorImage.h"
 
 #include "otbMacro.h"
 
@@ -32,8 +30,8 @@ namespace otb
 {
 
 //---------------------------------------------------------
-template <class TInputImage, unsigned int toto>
-ImageFileWriter<TInputImage,toto>
+template <class TInputImage>
+ImageFileWriter<TInputImage>
 ::ImageFileWriter() : itk::ImageFileWriter<TInputImage>(),
     m_UserSpecifiedIORegion(false),
     m_FactorySpecifiedImageIO(false)
@@ -43,8 +41,8 @@ ImageFileWriter<TInputImage,toto>
 
 
 //---------------------------------------------------------
-template <class TInputImage, unsigned int toto>
-ImageFileWriter<TInputImage,toto>
+template <class TInputImage>
+ImageFileWriter<TInputImage>
 ::~ImageFileWriter()
 {
 }
@@ -52,9 +50,9 @@ ImageFileWriter<TInputImage,toto>
 
 
 //---------------------------------------------------------
-template <class TInputImage, unsigned int toto>
+template <class TInputImage>
 void
-ImageFileWriter<TInputImage,toto>
+ImageFileWriter<TInputImage>
 ::Write()
 {
   const InputImageType * input = this->GetInput();
@@ -206,9 +204,9 @@ ImageFileWriter<TInputImage,toto>
 
 
 //---------------------------------------------------------
-template <class TInputImage, unsigned int toto>
+template <class TInputImage>
 void
-ImageFileWriter<TInputImage,toto>
+ImageFileWriter<TInputImage>
 ::PrintSelf(std::ostream& os, itk::Indent indent) const
 {
   Superclass::PrintSelf(os,indent);
diff --git a/Code/IO/otbMetaDataKey.h b/Code/IO/otbMetaDataKey.h
index bfe3c154618c5c4d86a9d0bd623bb1f76bff4326..2ee5faf048238cd193202899e53f47ed68fa3ed1 100644
--- a/Code/IO/otbMetaDataKey.h
+++ b/Code/IO/otbMetaDataKey.h
@@ -22,7 +22,6 @@
 #pragma warning ( disable : 4786 )
 #endif
 
-#include <iostream>
 #include <string>
 #include <vector>
 
diff --git a/Code/IO/otbStreamingImageFileWriter.h b/Code/IO/otbStreamingImageFileWriter.h
index 148d9324f88d8419373a98292862918f4fc8ea66..4b388d33145e80f79517b28dc190b778b11441ba 100644
--- a/Code/IO/otbStreamingImageFileWriter.h
+++ b/Code/IO/otbStreamingImageFileWriter.h
@@ -18,9 +18,8 @@
 #ifndef __otbStreamingImageFileWriter_h
 #define __otbStreamingImageFileWriter_h
 
-#include "itkMacro.h"
+#include "otbMacro.h"
 #include "itkImageIOBase.h"
-#include "itkImageSource.h"
 #include "itkImageToImageFilter.h"
 #include "itkImageRegionSplitter.h"
 #include "otbStreamingTraits.h"
diff --git a/Code/IO/otbStreamingImageFileWriter.txx b/Code/IO/otbStreamingImageFileWriter.txx
index e7e6562ca873e7e59e66546f00796c8f313eef07..937337efdec56a847b0d7197d5a6efab222cd630 100644
--- a/Code/IO/otbStreamingImageFileWriter.txx
+++ b/Code/IO/otbStreamingImageFileWriter.txx
@@ -17,16 +17,15 @@
 =========================================================================*/
 #ifndef __otbStreamingImageFileWriter_txx
 #define __otbStreamingImageFileWriter_txx
+
 #include "otbStreamingImageFileWriter.h"
+#include "itkImageFileWriter.h"
 
-#include "itkCommand.h"
-#include "itkImageRegionIterator.h"
 #include "itkObjectFactoryBase.h"
-#include "itkImageFileWriter.h"
+
 #include "itkImageRegionMultidimensionalSplitter.h"
 #include "otbImageIOFactory.h"
 
-#include "otbMacro.h"
 #include "otbConfigure.h"
 
 namespace otb
diff --git a/Code/IO/otbVectorImage.h b/Code/IO/otbVectorImage.h
index 590d0f9b9dd299813f08c439b9c5ac3bc4533f29..e0cb701997001a562a06607577af2bcae3a51d82 100644
--- a/Code/IO/otbVectorImage.h
+++ b/Code/IO/otbVectorImage.h
@@ -23,13 +23,8 @@
 #endif
 
 #include "itkVectorImage.h"
-
 #include "otbImageBase.h"
-#include "itkDefaultVectorPixelAccessorFunctor.h"
-#include "itkDefaultVectorPixelAccessor.h"
-#include "itkVectorImageNeighborhoodAccessorFunctor.h"
 
-#include <iostream>
 #include <string.h>
 
 namespace otb