diff --git a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h
index 6dac383dcf9d9ddcf795bc39c5736ed38fd57100..0d2a1fc8aff8655f6f07b0af42794fe3516b1541 100644
--- a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h
+++ b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h
@@ -131,6 +131,19 @@ public:
     this->SetNthInput(size - 1, const_cast<itk::DataObject*>(dynamic_cast<const itk::DataObject*>(inputPtr)));
   }
 
+  /** Add a new ImageFileWriter to the multi-writer. This is an alternative method
+   *  when you already have an instanciated writer.
+   */
+  template <class TWriter>
+  void AddInputWriter(const TWriter* writer)
+  {
+    Sink<typename TWriter::InputImageType > * sink =
+      new Sink<typename TWriter::InputImageType >(writer);
+    m_SinkList.push_back(SinkBase::Pointer(sink));
+    unsigned int size = m_SinkList.size();
+    this->SetNthInput(size - 1, const_cast<itk::DataObject*>(dynamic_cast<const itk::DataObject*>(writer->GetInput())));
+  }
+
   virtual void UpdateOutputInformation();
 
   virtual void Update()
@@ -242,6 +255,7 @@ private:
     Sink() {}
     Sink(typename TImage::ConstPointer inputImage,
          const std::string & filename);
+    Sink(typename otb::ImageFileWriter<TImage>::ConstPointer writer);
 
     virtual ~Sink() {}
 
diff --git a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.txx b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.txx
index 01358fa4ea5cb42730eb25a32a163f0094197c1a..5e6d6304dc52aa3dc95a497b45264ff2cc15d277 100644
--- a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.txx
+++ b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.txx
@@ -40,6 +40,14 @@ MultiImageFileWriter::Sink<TImage>
   m_Writer->SetInput(inputImage);
 }
 
+template <class TImage>
+MultiImageFileWriter::Sink<TImage>
+::Sink(typename otb::ImageFileWriter<TImage>::ConstPointer writer):
+  SinkBase(dynamic_cast<const ImageBaseType*>(writer->GetInput()->GetPointer())),
+  m_Writer(writer),
+  m_ImageIO(NULL)
+{
+}
 
 template <class TImage>
 bool