diff --git a/Applications/Segmentation/otbLargeScaleSegmentation.cxx b/Applications/Segmentation/otbLargeScaleSegmentation.cxx
index 958146fb226fcc8b336b5338becb3234104d7633..5c951c3f62b7027091cf535103a533ef7bf3b8df 100644
--- a/Applications/Segmentation/otbLargeScaleSegmentation.cxx
+++ b/Applications/Segmentation/otbLargeScaleSegmentation.cxx
@@ -183,6 +183,12 @@ private:
     SetMinimumParameterIntValue("minsize", 1);
     MandatoryOff("minsize");
 
+    AddParameter(ParameterType_Float, "simplify", "Simplify geometry");
+    SetParameterDescription("simplify",
+                            "Simplify polygons according to a given tolerance");
+    SetDefaultParameterFloat("simplify",0.1);
+    MandatoryOff("simplify");
+
     AddParameter(ParameterType_String, "layername", "Layer Name");
     SetParameterDescription("layername", "Layer Name.(by default : Layer )");
     SetParameterString("layername", "layer");
@@ -297,9 +303,13 @@ private:
           edisonVectorizationFilter->SetMinimumObjectSize(minSize);
           }
 
-        edisonVectorizationFilter->SetSimplify(false);
+        if(IsParameterEnabled("simplify"))
+          {
+          edisonVectorizationFilter->SetSimplify(true);
+          edisonVectorizationFilter->SetSimplificationTolerance(GetParameterFloat("simplify"));
+          }
 
-        std::cout<<"Edison branch"<<std::endl;
+        edisonVectorizationFilter->SetSimplify(false);
 
         edisonVectorizationFilter->Initialize(); //must be called !
         edisonVectorizationFilter->Update(); //must be called !