diff --git a/Code/OBIA/otbPersistentImageToOGRDataFilter.h b/Code/OBIA/otbPersistentImageToOGRDataFilter.h
index 38fbfbf9cfa0882f998a8d3277888cbcf3af6f73..2cf9a695a26e5ac2175fd2d8b80599409ed1cb29 100644
--- a/Code/OBIA/otbPersistentImageToOGRDataFilter.h
+++ b/Code/OBIA/otbPersistentImageToOGRDataFilter.h
@@ -112,8 +112,6 @@ protected:
   void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
   virtual void GenerateData();
-  
-  void GenerateInputRequestedRegion();
 
 
 private:
diff --git a/Code/OBIA/otbPersistentImageToOGRDataFilter.txx b/Code/OBIA/otbPersistentImageToOGRDataFilter.txx
index 1b17482ab7c8c2a6373fbff12a3a544a5d3e0332..352fe540a8fef245e7f020e713ed160bc4cb8c35 100644
--- a/Code/OBIA/otbPersistentImageToOGRDataFilter.txx
+++ b/Code/OBIA/otbPersistentImageToOGRDataFilter.txx
@@ -62,19 +62,6 @@ PersistentImageToOGRDataFilter<TImage>
 }
 
 
-template<class TImage>
-void
-PersistentImageToOGRDataFilter<TImage>
-::GenerateInputRequestedRegion()
-{
-   Superclass::GenerateInputRequestedRegion();
-   if (this->m_StreamSize[0]==0 && this->m_StreamSize[1]==0)
-   {
-      this->m_StreamSize = this->GetInput()->GetRequestedRegion().GetSize();
-   }
-}
-
-
 template<class TImage>
 void
 PersistentImageToOGRDataFilter<TImage>
@@ -143,6 +130,12 @@ void
 PersistentImageToOGRDataFilter<TImage>
 ::GenerateData()
 {
+  
+  if (this->GetStreamSize()[0]==0 && this->GetStreamSize()[1]==0)
+  {
+     this->m_StreamSize = this->GetInput()->GetRequestedRegion().GetSize();
+  }
+  
   // call the processing function for this tile
   OGRDataSourcePointerType currentTileVD = this->ProcessTile();
   OGRLayerType srcLayer = currentTileVD->GetLayerChecked(0);
diff --git a/Code/OBIA/otbStreamingVectorizedSegmentationOGR.h b/Code/OBIA/otbStreamingVectorizedSegmentationOGR.h
index e6485acda28ef73c9d70a07185cad3571a9192bc..ea6487374bb95bbce5f5e2bf6456d1ff503d79fc 100644
--- a/Code/OBIA/otbStreamingVectorizedSegmentationOGR.h
+++ b/Code/OBIA/otbStreamingVectorizedSegmentationOGR.h
@@ -182,7 +182,6 @@ protected:
 
   virtual ~PersistentStreamingLabelImageToOGRDataFilter();
 
-  void GenerateInputRequestedRegion();
 
 private:
   PersistentStreamingLabelImageToOGRDataFilter(const Self &); //purposely not implemented
diff --git a/Code/OBIA/otbStreamingVectorizedSegmentationOGR.txx b/Code/OBIA/otbStreamingVectorizedSegmentationOGR.txx
index dff46f97ff4abca013b0adad2bed28c034e70b71..2153acde433b9f17b8833676554e97037ea92c4f 100644
--- a/Code/OBIA/otbStreamingVectorizedSegmentationOGR.txx
+++ b/Code/OBIA/otbStreamingVectorizedSegmentationOGR.txx
@@ -67,13 +67,6 @@ PersistentStreamingLabelImageToOGRDataFilter<TImageType, TSegmentationFilter>
   return static_cast<const LabelImageType *>(this->itk::ProcessObject::GetInput(2));
 }
 
-template <class TImageType, class TSegmentationFilter>
-void
-PersistentStreamingLabelImageToOGRDataFilter<TImageType, TSegmentationFilter>
-::GenerateInputRequestedRegion()
-{
-  Superclass::GenerateInputRequestedRegion();
-}
 
 template <class TImageType, class TSegmentationFilter>
 typename PersistentStreamingLabelImageToOGRDataFilter<TImageType, TSegmentationFilter>::OGRDataSourcePointerType