diff --git a/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.txx b/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.txx
index 9d18b5d1e6e3dbca2510e93187e7b87d6155685d..be489347843888f73133163f852140abd721eabd 100644
--- a/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.txx
+++ b/Modules/Feature/Textures/include/otbScalarImageToTexturesFilter.txx
@@ -177,8 +177,6 @@ ScalarImageToTexturesFilter<TInputImage, TOutputImage>
   Superclass::GenerateOutputInformation();
 
   // Compute output size, origin & spacing
-  OutputImagePointerType outputPtr = this->GetOutput();
-
   InputRegionType inputRegion = this->GetInput()->GetLargestPossibleRegion();
   OutputRegionType outputRegion;
   outputRegion.SetIndex(0,0);
@@ -193,9 +191,13 @@ ScalarImageToTexturesFilter<TInputImage, TOutputImage>
   typename OutputImageType::PointType outOrigin;
   this->GetInput()->TransformIndexToPhysicalPoint(inputRegion.GetIndex()+m_SubsampleOffset,outOrigin);
 
-  outputPtr->SetLargestPossibleRegion(outputRegion);
-  outputPtr->SetOrigin(outOrigin);
-  outputPtr->SetSpacing(outSpacing);
+  for (unsigned int i=0 ; i<this->GetNumberOfOutputs() ; i++)
+    {
+    OutputImagePointerType outputPtr = this->GetOutput(i);
+    outputPtr->SetLargestPossibleRegion(outputRegion);
+    outputPtr->SetOrigin(outOrigin);
+    outputPtr->SetSpacing(outSpacing);
+    }
 }
 
 template <class TInputImage, class TOutputImage>