diff --git a/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.h b/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.h
index 3b21985b16327d8c26009362c08dc7f742517f91..1800dc62ae4a170c70f0039906c79f2b2093e40d 100644
--- a/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.h
+++ b/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.h
@@ -140,4 +140,9 @@ template <typename TImage> void WriteMPI(TImage *img, const std::string &output,
 }
 
 } // End namespace otb
+
+#ifndef OTB_MANUAL_INSTANTIATION
+#include "otbMPIVrtWriter.txx"
+#endif
+
 #endif //__otbMPIVrtWriter_h
diff --git a/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.txx b/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.txx
index db1119291976e4c3269a259dd599f2ad73d236f4..ebece9e026a921bee468b3333d9c9e9519777503 100644
--- a/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.txx
+++ b/Modules/MPI/MPIVrtWriter/include/otbMPIVrtWriter.txx
@@ -48,7 +48,7 @@ MPIVrtWriter<TImage>::SetInput(const InputImageType *input)
 }
 
 template <typename TImage>
-const InputImageType*
+const TImage*
 MPIVrtWriter<TImage>::GetInput()
 {
   if (this->GetNumberOfInputs() < 1)