diff --git a/Modules/Filtering/Wavelet/test/CMakeLists.txt b/Modules/Filtering/Wavelet/test/CMakeLists.txt
index e09d0c8e48ffea54f1fba01038175b636de7b919..f8c8023e5de7774d5707d296a2b854169716ab5e 100644
--- a/Modules/Filtering/Wavelet/test/CMakeLists.txt
+++ b/Modules/Filtering/Wavelet/test/CMakeLists.txt
@@ -15,6 +15,7 @@ otbWaveletFilterBank.cxx
 otbWaveletPacketTransformNew.cxx
 otbWaveletFilterBankNew.cxx
 otbWaveletOperatorNew.cxx
+otbWaveletImageToImageFilter.cxx
 )
 
 add_executable(otbWaveletTestDriver ${OTBWaveletTests})
@@ -572,3 +573,11 @@ otb_add_test(NAME msTuWaveletFilterBankNew COMMAND otbWaveletTestDriver
 otb_add_test(NAME msTuWaveletOperatorNew COMMAND otbWaveletTestDriver
   otbWaveletOperatorNew )
 
+otb_add_test(NAME msTvWaveletImageToImageFilter COMMAND otbWaveletTestDriver
+  --compare-image ${EPSILON_6}
+  ${INPUTDATA}/QB_Toulouse_Ortho_PAN.tif
+  ${TEMP}/msTvWaveletImageToImageFilterOut.tif
+  otbWaveletImageToImageFilter
+  ${INPUTDATA}/QB_Toulouse_Ortho_PAN.tif
+  ${TEMP}/msTvWaveletImageToImageFilterOut.tif
+  )
diff --git a/Modules/Filtering/Wavelet/test/otbWaveletImageToImageFilter.cxx b/Modules/Filtering/Wavelet/test/otbWaveletImageToImageFilter.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..e36dd118f9e4bb1a1424e33bc41bf5c86c9845a2
--- /dev/null
+++ b/Modules/Filtering/Wavelet/test/otbWaveletImageToImageFilter.cxx
@@ -0,0 +1,89 @@
+/*=========================================================================
+
+  Program:   ORFEO Toolbox
+  Language:  C++
+  Date:      $Date$
+  Version:   $Revision$
+
+
+  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
+  See OTBCopyright.txt for details.
+
+  Copyright (c) Institut Mines-Telecom. All rights reserved.
+  See IMTCopyright.txt for details.
+
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+
+=========================================================================*/
+/* 
+This test code will run a WaveletImageFilter on given input image.
+Output from this filter is fed to WaveletInverseImageFilter which does the inverse
+transform that will result in the same input image. 
+
+Wavelet operator used is HAAR (otb::Wavelet::HAAR).
+This filter works only in single-threaded setup 
+*/
+
+#include "otbImage.h"
+#include "otbImageFileReader.h"
+#include "otbImageFileWriter.h"
+#include "otbWaveletImageFilter.h"
+#include "otbWaveletInverseImageFilter.h"
+
+int otbWaveletImageToImageFilter(int argc, char * argv[])
+{
+
+  const char *       inputFileName = argv[1];
+  const char *       outputFileName = argv[argc-1];
+
+  /* Wavelet operator */
+  const otb::Wavelet::Wavelet OperatorType = otb::Wavelet::HAAR;
+  
+  const int Dimension = 2;
+  typedef double                           PixelType;
+  typedef otb::Image<PixelType, Dimension> ImageType;
+  typedef otb::ImageFileReader<ImageType>  ReaderType;
+
+
+
+  typedef otb::WaveletImageFilter<
+	  ImageType,
+	  ImageType,
+	  OperatorType> FwdFilterType;
+
+  typedef otb::WaveletInverseImageFilter<
+	  ImageType,
+	  ImageType,
+	  OperatorType> InvFilterType;
+
+  typedef otb::ImageFileWriter<ImageType> WriterType;
+  
+  itk::MultiThreader::SetGlobalMaximumNumberOfThreads( 1 );
+
+  /* Reading */
+  ReaderType::Pointer reader = ReaderType::New();
+  reader->SetFileName(inputFileName);
+
+  /* Forward Transformation */  
+  FwdFilterType::Pointer fwdFilter = FwdFilterType::New();
+ 
+  fwdFilter->SetInput(reader->GetOutput());
+  fwdFilter->Update();
+
+  /* Inverse Transformation */  
+  
+  InvFilterType::Pointer invFilter = InvFilterType::New();
+  
+  invFilter->SetInput(fwdFilter->GetOutput());
+  invFilter->Update();
+
+  /* Writing output */
+  WriterType::Pointer writer = WriterType::New();
+  writer->SetFileName(outputFileName);
+  writer->SetInput(invFilter->GetOutput());
+  writer->Update();
+
+  return EXIT_SUCCESS;
+}
diff --git a/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx b/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx
index 532d5e7880926866964abe550f940c198b594eb6..60c07f794cfc141162783e429dc8849425b361ff 100644
--- a/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx
+++ b/Modules/Filtering/Wavelet/test/otbWaveletTestDriver.cxx
@@ -14,4 +14,5 @@ void RegisterTests()
   REGISTER_TEST(otbWaveletPacketTransformNew);
   REGISTER_TEST(otbWaveletFilterBankNew);
   REGISTER_TEST(otbWaveletOperatorNew);
+  REGISTER_TEST(otbWaveletImageToImageFilter);
 }