diff --git a/Code/IO/otbStreamingImageFileWriter.txx b/Code/IO/otbStreamingImageFileWriter.txx
index 78d4c74cbef5d36deee9b30d347bda0d282ce37e..ba5b180f8fcb9f9c0ec074775985b8d0f5cfeb24 100644
--- a/Code/IO/otbStreamingImageFileWriter.txx
+++ b/Code/IO/otbStreamingImageFileWriter.txx
@@ -672,8 +672,11 @@ StreamingImageFileWriter<TInputImage>
       cacheImage->SetBufferedRegion(ioRegion);
       cacheImage->Allocate();
 
-      itk::ImageRegionConstIterator<TInputImage> in(input, ioRegion);
-      itk::ImageRegionIterator<TInputImage> out(cacheImage, ioRegion);
+      typedef itk::ImageRegionConstIterator<TInputImage> ConstIteratorType;
+      typedef itk::ImageRegionIterator<TInputImage>      IteratorType;
+      
+      ConstIteratorType in(input, ioRegion);
+      IteratorType out(cacheImage, ioRegion);
      
       // copy the data into a buffer to match the ioregion
       for (in.GoToBegin(), out.GoToBegin(); !in.IsAtEnd(); ++in, ++out)