diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index b310981faeb68628c3c8fef8068f85b59f0633c1..98d583cb03e4b60209d2dcedfb6a3f9f4569f7c0 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -1,9 +1,5 @@
 cmake_minimum_required (VERSION 2.8)
 
-OTB_CREATE_APPLICATION(NAME           ExtractGeom
-                       SOURCES        otbExtractGeom.cxx
-                       LINK_LIBRARIES ${${otb-module}_LIBRARIES})
-
 OTB_CREATE_APPLICATION(NAME           MeanResample
                        SOURCES        otbMeanResample.cxx
                        LINK_LIBRARIES ${${otb-module}_LIBRARIES})
diff --git a/app/otbExtractGeom.cxx b/app/otbExtractGeom.cxx
deleted file mode 100644
index 9f0f26478fdec6e862c0cc70def263b7f4afc456..0000000000000000000000000000000000000000
--- a/app/otbExtractGeom.cxx
+++ /dev/null
@@ -1,262 +0,0 @@
-/*=========================================================================
-
-  Copyright (c) Remi Cresson (IRSTEA). All rights reserved.
-
-
-     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.
-
-=========================================================================*/
-#include "itkFixedArray.h"
-#include "itkObjectFactory.h"
-
-// Elevation handler
-#include "otbWrapperElevationParametersHandler.h"
-#include "otbWrapperApplicationFactory.h"
-
-// Application engine
-#include "otbStandardFilterWatcher.h"
-#include "itkFixedArray.h"
-
-// Filter
-#include "otbMultiChannelExtractROI.h"
-#include "otbVectorDataToLabelImageCustomFilter.h"
-#include "itkMaskImageFilter.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbRegionComparator.h"
-
-// ogr
-#include "otbOGR.h"
-#include "otbGeometriesProjectionFilter.h"
-#include "otbGeometriesSet.h"
-
-// No-data
-#include "otbChangeInformationImageFilter.h"
-
-using namespace std;
-
-namespace otb
-{
-
-namespace Wrapper
-{
-
-class ExtractGeom : public Application
-{
-public:
-  /** Standard class typedefs. */
-  typedef ExtractGeom                         Self;
-  typedef Application                         Superclass;
-  typedef itk::SmartPointer<Self>             Pointer;
-  typedef itk::SmartPointer<const Self>       ConstPointer;
-
-  /** Standard macro */
-  itkNewMacro(Self);
-  itkTypeMacro(ExtractGeom, Application);
-
-  /** Filters */
-  typedef otb::MultiChannelExtractROI<FloatVectorImageType::InternalPixelType,
-      FloatVectorImageType::InternalPixelType>                        ExtractFilterType;
-
-  /** mask */
-  typedef bool                                                        TMaskPixelValueType;
-  typedef otb::Image<TMaskPixelValueType, 2>                          MaskImageType;
-  typedef itk::MaskImageFilter<FloatVectorImageType, MaskImageType,
-      FloatVectorImageType>                                           MaskFilterType;
-
-  /* vector data filters */
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType,
-      FloatVectorImageType>                                           VectorDataReprojFilterType;
-  typedef otb::VectorDataToLabelImageCustomFilter<VectorDataType,
-      MaskImageType>                                                  RasteriseFilterType;
-
-  /** no-data */
-  typedef otb::ChangeInformationImageFilter<FloatVectorImageType>     ChangeInfoFilterType;
-
-  typedef otb::GeometriesSet GeometriesType;
-
-  typedef otb::GeometriesProjectionFilter ProjectionFilterType;
-
-  void DoInit()
-  {
-    SetName("ExtractGeom");
-    SetDescription("Perform geometric extraction");
-
-    // Documentation
-    SetDocLongDescription("This application performs geometric extraction");
-    SetDocLimitations("None");
-    SetDocAuthors("RemiCresson");
-    SetDocSeeAlso(" ");
-
-    AddDocTag(Tags::Manip);
-
-    AddParameter(ParameterType_InputImage,   "in",  "Input Image");
-    SetParameterDescription("in"," Input image.");
-
-    AddParameter(ParameterType_InputVectorData, "vec", "Input vector" );
-    SetParameterDescription("vec","Input vector" );
-
-    AddParameter(ParameterType_OutputImage,  "out",   "Output image");
-    SetParameterDescription("out"," Output image.");
-
-    AddRAMParameter();
-
-    // Doc example parameter settings
-    SetDocExampleParameterValue("vec", "vecteur.shp");
-    SetDocExampleParameterValue("in", "QB_Toulouse_Ortho_XS.tif");
-    SetDocExampleParameterValue("out", "QB_Toulouse_Ortho_XS_decoup.tif uint16");
-
-  }
-
-  void DoUpdateParameters()
-  {
-    // Nothing to do here : all parameters are independent
-  }
-
-  void DoExecute()
-  {
-
-    // Get inputs
-    FloatVectorImageType::Pointer xs = GetParameterImage("in");
-    VectorDataType* shp = GetParameterVectorData("vec");
-
-    /* Reproject vector data */
-    m_VectorDataReprojectionFilter = VectorDataReprojFilterType::New();
-    m_VectorDataReprojectionFilter->SetInputVectorData(shp);
-    m_VectorDataReprojectionFilter->SetInputImage(xs);
-    m_VectorDataReprojectionFilter->Update();
-
-    // Get vector data BBOX
-    otb::ogr::DataSource::Pointer vectors =
-      otb::ogr::DataSource::New(this->GetParameterString("vec"));
-    otb::ogr::DataSource::Pointer reprojVector = vectors;
-    GeometriesType::Pointer inputGeomSet;
-    ProjectionFilterType::Pointer geometriesProjFilter;
-    GeometriesType::Pointer outputGeomSet;
-    bool doReproj = true;
-    // don't reproject for these cases
-    std::string imageProjectionRef = xs->GetProjectionRef();
-    FloatVectorImageType::ImageKeywordlistType imageKwl = xs->GetImageKeywordlist();
-    std::string vectorProjectionRef = shp->GetProjectionRef();
-    if (vectorProjectionRef.empty() ||
-        (imageProjectionRef == vectorProjectionRef) ||
-        (imageProjectionRef.empty() && imageKwl.GetSize() == 0))
-      doReproj = false;
-
-    if (doReproj)
-      {
-      inputGeomSet = GeometriesType::New(vectors);
-      reprojVector = otb::ogr::DataSource::New();
-      outputGeomSet = GeometriesType::New(reprojVector);
-      // Filter instantiation
-      geometriesProjFilter = ProjectionFilterType::New();
-      geometriesProjFilter->SetInput(inputGeomSet);
-      if (imageProjectionRef.empty())
-        {
-        geometriesProjFilter->SetOutputKeywordList(imageKwl);
-        }
-      geometriesProjFilter->SetOutputProjectionRef(imageProjectionRef);
-      geometriesProjFilter->SetOutput(outputGeomSet);
-      otbAppLogINFO("Reprojecting input vectors...");
-      geometriesProjFilter->Update();
-      }
-
-    /* Get VectorData bounding box */
-    itk::Point<double, 2> ulp_in,  lrp_in;
-    bool extentAvailable = true;
-    std::string inputProjectionRef = "";
-
-    // First try to get the extent in the metadata
-    try
-    {
-        inputProjectionRef = reprojVector->GetGlobalExtent(ulp_in[0],ulp_in[1],lrp_in[0],lrp_in[1]);
-    }
-    catch(const itk::ExceptionObject&)
-    {
-        extentAvailable = false;
-    }
-    // If no extent available force the computation of the extent
-    if (!extentAvailable)
-      {
-        try
-        {
-            inputProjectionRef = reprojVector->GetGlobalExtent(ulp_in[0],ulp_in[1],lrp_in[0],lrp_in[1],true);
-            extentAvailable = true;
-        }
-        catch(itk::ExceptionObject & err)
-        {
-            extentAvailable = false;
-
-            otbAppLogFATAL(<<"Failed to retrieve the spatial extent of the dataset "
-                "in force mode. The spatial extent is mandatory when "
-                "orx, ory, spx and spy parameters are not set, consider "
-                "setting them. Error from library: "<<err.GetDescription());
-        }
-      }
-    otb::RegionComparator<FloatVectorImageType, FloatVectorImageType>::RSRegion::PointType rsRoiOrigin;
-    rsRoiOrigin[0] = ulp_in[0] ;
-    rsRoiOrigin[1] = ulp_in[1] ;
-    otb::RegionComparator<FloatVectorImageType, FloatVectorImageType>::RSRegion::SizeType rsRoiSize;
-    rsRoiSize[0] = lrp_in[ 0 ] - rsRoiOrigin[0];
-    rsRoiSize[1] = lrp_in[ 1 ] - rsRoiOrigin[1];
-    otb::RegionComparator<FloatVectorImageType, FloatVectorImageType>::RSRegion rsRoi;
-    rsRoi.SetOrigin(rsRoiOrigin);
-    rsRoi.SetSize(rsRoiSize);
-
-    /* Compute intersecting region */
-    otb::RegionComparator<FloatVectorImageType, FloatVectorImageType> comparator;
-    comparator.SetImage1(xs);
-    FloatVectorImageType::RegionType roi = comparator.RSRegionToImageRegion(rsRoi);
-    roi.PadByRadius(1); // avoid extrapolation
-    if (!roi.Crop(xs->GetLargestPossibleRegion()))
-      {
-        otbAppLogFATAL( << " Input VectorData is outside image !" );
-        return;
-      }
-
-    /* Rasterize vector data */
-    m_RasterizeFilter = RasteriseFilterType::New();
-    m_RasterizeFilter->AddVectorData(m_VectorDataReprojectionFilter->GetOutput());
-    m_RasterizeFilter->SetOutputOrigin(xs->GetOrigin());
-    m_RasterizeFilter->SetOutputSpacing(xs->GetSignedSpacing());
-    m_RasterizeFilter->SetOutputSize(xs->GetLargestPossibleRegion().GetSize());
-    m_RasterizeFilter->SetBurnMaxValueMode(true);
-    m_RasterizeFilter->SetOutputProjectionRef(xs->GetProjectionRef());
-    m_RasterizeFilter->Update();
-
-    /* Mask input image */
-    m_MaskFilter = MaskFilterType::New();
-    m_MaskFilter->SetInput(xs);
-    m_MaskFilter->SetMaskImage(m_RasterizeFilter->GetOutput());
-
-    /* Extract ROI */
-    m_ExtractFilter = ExtractFilterType::New();
-    m_ExtractFilter->SetInput(m_MaskFilter->GetOutput());
-    m_ExtractFilter->SetExtractionRegion(roi);
-
-    /* Change no-data value */
-    std::vector<bool> flags;
-    std::vector<double> values;
-    unsigned int nbBands = xs->GetNumberOfComponentsPerPixel();
-    flags.resize(nbBands, true);
-    values.resize(nbBands, 0.0);
-    m_MetaDataChanger = ChangeInfoFilterType::New();
-    m_MetaDataChanger->SetInput(m_ExtractFilter->GetOutput());
-    m_MetaDataChanger->SetOutputMetaData<std::vector<bool> >(otb::MetaDataKey::NoDataValueAvailable,&flags);
-    m_MetaDataChanger->SetOutputMetaData<std::vector<double> >(otb::MetaDataKey::NoDataValue,&values);
-
-    SetParameterOutputImage("out", m_MetaDataChanger->GetOutput());
-
-  }
-
-  ExtractFilterType::Pointer            m_ExtractFilter;
-  VectorDataReprojFilterType::Pointer   m_VectorDataReprojectionFilter;
-  RasteriseFilterType::Pointer          m_RasterizeFilter;
-  MaskFilterType::Pointer               m_MaskFilter;
-  ChangeInfoFilterType::Pointer         m_MetaDataChanger;
-};
-}
-}
-
-OTB_APPLICATION_EXPORT( otb::Wrapper::ExtractGeom )