diff --git a/Modules/Filtering/ImageManipulation/include/otbVariadicInputsImageFilter.h b/Modules/Filtering/ImageManipulation/include/otbVariadicInputsImageFilter.h
index 049072dc5ccdf720fdc84c7fb9b974aa88da9806..61ee1dd74d4e8dd517f84d65997c609b379d000d 100644
--- a/Modules/Filtering/ImageManipulation/include/otbVariadicInputsImageFilter.h
+++ b/Modules/Filtering/ImageManipulation/include/otbVariadicInputsImageFilter.h
@@ -41,6 +41,26 @@ public:
     this->SetNthInput(I,inputPtr);
   }
 
+#define DefineLegacySetInputMacro(n)                                                                               \
+  template<typename Tuple = InputTypesTupleType, typename std::enable_if<n<=std::tuple_size<Tuple>::value >::type> \
+  void SetInput ## n(typename std::tuple_element<n-1,Tuple>::type * img)                                           \
+  {                                                                                                                \
+    this->SetVInput<n-1>(img);                                                                                     \
+  }
+
+  // The following defines legacy setters SetInput1()
+  // ... SetInput10(), only if the number of input type is sufficient
+  DefineLegacySetInputMacro(1);
+  DefineLegacySetInputMacro(2);
+  DefineLegacySetInputMacro(3);
+  DefineLegacySetInputMacro(4);
+  DefineLegacySetInputMacro(5);
+  DefineLegacySetInputMacro(6);
+  DefineLegacySetInputMacro(7);
+  DefineLegacySetInputMacro(8);
+  DefineLegacySetInputMacro(9);
+  DefineLegacySetInputMacro(10);
+  
   template <std::size_t I> const typename std::tuple_element<I,InputTypesTupleType>::type * GetVInput()
   {
     using ImageType = typename std::tuple_element<I,InputTypesTupleType>::type;