diff --git a/Testing/Code/DisparityMap/CMakeLists.txt b/Testing/Code/DisparityMap/CMakeLists.txt
index 6b727535cc85f2bac3285a47071f8e03071fe051..a4e3ebfb43f324063359b5588c1b68fa3993d5f3 100644
--- a/Testing/Code/DisparityMap/CMakeLists.txt
+++ b/Testing/Code/DisparityMap/CMakeLists.txt
@@ -529,6 +529,26 @@ SET_TESTS_PROPERTIES(dmTvDisparityMapMedianFilter PROPERTIES DEPENDS dmTvSubPixe
 
 ADD_TEST(dmTuAdhesionCorrectionFilterNew ${DISPARITYMAP_TESTS4}
          otbAdhesionCorrectionFilterNew)
+         
+ ADD_TEST(dmTuAdhesionCorrectionFilter ${DISPARITYMAP_TESTS4}
+       otbAdhesionCorrectionFilter
+         ${INPUTDATA}/StereoFixedEdges.tif
+         ${TEMP}/dmTvDisparityMapMedianFilterOutput.tif
+         ${INPUTDATA}/BlankMask.tif
+         ${INPUTDATA}/MedianOutputEdges.tif
+         ${INPUTDATA}/BlankMask.tif
+         ${TEMP}/dmTvAdhesionCorrectionFilterDisparity.tif
+         ${TEMP}/dmTvAdhesionCorrectionFilterMask.tif
+         ${TEMP}/dmTvAdhesionCorrectionFilterRiskEdges.tif
+  		 3
+  		 0.25
+         10
+         30
+         100.0
+         100.0
+         )                 
+
+SET_TESTS_PROPERTIES(dmTuAdhesionCorrectionFilter PROPERTIES DEPENDS dmTvDisparityMapMedianFilter)
 
 # -------       Fichiers sources CXX -----------------------------------
 SET(BasicDisparityMap_SRCS1
diff --git a/Testing/Code/DisparityMap/otbAdhesionCorrectionFilter.cxx b/Testing/Code/DisparityMap/otbAdhesionCorrectionFilter.cxx
index 3f8cda433b24441e08e98365f671ee221223866a..d13d8330f442bdcb0868833cba990b13b91197b7 100644
--- a/Testing/Code/DisparityMap/otbAdhesionCorrectionFilter.cxx
+++ b/Testing/Code/DisparityMap/otbAdhesionCorrectionFilter.cxx
@@ -17,17 +17,28 @@
 =========================================================================*/
 #include "otbAdhesionCorrectionFilter.h"
 #include "otbImage.h"
+#include "otbStreamingImageFileWriter.h"
+#include "otbStandardWriterWatcher.h"
+#include "otbImageFileReader.h"
 
-int otbAdhesionCorrectionFilterNew(int argc, char* argv[])
-{
-  const unsigned int Dimension = 2;
+ const unsigned int Dimension = 2;
   typedef float                                                         PixelType;
   typedef otb::Image<PixelType, Dimension>                              ImageType;
-  typedef unsigned char                                                 MaskPixelType;
+  typedef float                                                         MaskPixelType;
   typedef otb::Image<MaskPixelType, Dimension>                          MaskType;
 
+
+  typedef otb::ImageFileReader<ImageType>               ReaderType;
+  typedef otb::ImageFileReader<MaskType>                MaskReaderType;
+
+  typedef otb::StreamingImageFileWriter<ImageType>                      WriterType;
+  typedef otb::StreamingImageFileWriter<MaskType>                       MaskWriterType;
+
   typedef otb::AdhesionCorrectionFilter<ImageType, MaskType> AdhesionCorrectionFilterType;
 
+int otbAdhesionCorrectionFilterNew(int argc, char* argv[])
+{
+
   // Instantiation
   AdhesionCorrectionFilterType::Pointer filter = AdhesionCorrectionFilterType::New();
 
@@ -36,8 +47,67 @@ int otbAdhesionCorrectionFilterNew(int argc, char* argv[])
 
 int otbAdhesionCorrectionFilter(int argc, char* argv[])
 {
+  if ((argc != 15))
+    {
+    std::cerr << "Usage: " << argv[0];
+    std::cerr << " imageinput_fname meddispinput_fname medmaskinput_fname edgedispinput_fname  subpixmaskinput_fname"
+        << std::endl;
+    std::cerr << " ouputmap_filename  outputmask_filename outputriskedges_filename ";
+    std::cerr << " radius tolerance discontinuitythres discontinuityhighthres edgethres maxedgegap ";
+    return EXIT_FAILURE;
+    }
+  AdhesionCorrectionFilterType::Pointer filter = AdhesionCorrectionFilterType::New();
 
-   return EXIT_SUCCESS;
+  ReaderType::Pointer inReader = ReaderType::New();
+  inReader->SetFileName(argv[1]);
+
+  ReaderType::Pointer medianDispReader = ReaderType::New();
+    medianDispReader->SetFileName(argv[2]);
+
+  MaskReaderType::Pointer medianMaskReader = MaskReaderType::New();
+  medianMaskReader->SetFileName(argv[3]);
+
+
+  ReaderType::Pointer edgeDispReader = ReaderType::New();
+  edgeDispReader->SetFileName(argv[4]);
+
+  MaskReaderType::Pointer subPixelMaskReader = MaskReaderType::New();
+  subPixelMaskReader->SetFileName(argv[5]);
+
+  filter->SetInput(inReader->GetOutput());
+  filter->SetMedianDisparityInput(medianDispReader->GetOutput());
+  filter->SetMedianMaskInput(medianMaskReader->GetOutput());
+  filter->SetEdgesDisparityInput(edgeDispReader->GetOutput());
+  filter->SetSubPixelMaskInput(subPixelMaskReader->GetOutput());
+
+  filter->SetRadius(atoi(argv[9]));
+  filter->SetTolerance(atof(argv[10]));
+  filter->SetDiscontinuityThreshold(atof(argv[11]));
+  filter->SetDiscontinuityHighThreshold(atof(argv[12]));
+  filter->SetEdgeThreshold(atof(argv[13]));
+  filter->SetMaxEdgeGap(atof(argv[14]));
+
+
+WriterType  ::Pointer dispWriter = WriterType::New();
+  dispWriter->SetInput(filter->GetOutput());
+  dispWriter->SetFileName(argv[6]);
+  otb::StandardWriterWatcher watcher1(dispWriter, filter, "Computing disparity ");
+
+  dispWriter->Update();
+
+  WriterType::Pointer maskWriter = WriterType::New();
+  maskWriter->SetInput(filter->GetOutputMask());
+  maskWriter->SetFileName(argv[7]);
+
+  maskWriter->Update();
+
+  WriterType::Pointer edgeWriter = WriterType::New();
+  edgeWriter->SetInput(filter->GetOutputRiskEdges());
+  edgeWriter->SetFileName(argv[8]);
+
+  edgeWriter->Update();
+
+  return EXIT_SUCCESS;
 }
 
 
diff --git a/Testing/Code/DisparityMap/otbDisparityMapTests4.cxx b/Testing/Code/DisparityMap/otbDisparityMapTests4.cxx
index 537235fb0f364a89569bd7da9bd6fbd950cebe4b..18c2c4f02838421c9d3431095a4a8b89dd921595 100644
--- a/Testing/Code/DisparityMap/otbDisparityMapTests4.cxx
+++ b/Testing/Code/DisparityMap/otbDisparityMapTests4.cxx
@@ -25,6 +25,7 @@
 void RegisterTests()
 {
   REGISTER_TEST(otbAdhesionCorrectionFilterNew);
+  REGISTER_TEST(otbAdhesionCorrectionFilter);
   REGISTER_TEST(otbDisparityMapMedianFilterNew);
   REGISTER_TEST(otbDisparityMapMedianFilter);
   REGISTER_TEST(otbPixelWiseBlockMatchingImageFilterNew);