diff --git a/Testing/CMakeLists.txt b/Testing/CMakeLists.txt
index e86be1ef6a5947f6fe6e5fe526ccb663e184493c..3d35698b87253d9ac31e98a9bf18a3c120815673 100644
--- a/Testing/CMakeLists.txt
+++ b/Testing/CMakeLists.txt
@@ -416,6 +416,7 @@ ADD_TEST(hyTuMNFImageFilterNew
 ADD_TEST(hyTvMNFImageFilter
          ${TESTEXE_DIR}/otbHyperTests1
 		 otbMNFImageFilterTest 
+		 -norm 
 		 -in ${DATA}/CupriteSubHsi/cupriteSubHsi.tif
 		 -inv ${TEMP}/cupriteMNFinv.hdr
 		 -out ${TEMP}/cupriteMNF.hdr)
diff --git a/Testing/otbMNFImageFilter.cxx b/Testing/otbMNFImageFilter.cxx
index ded760535ea6a80adc8118c18b37a89ff9bf1736..a19ab8afeb13953b192e73a4778ec342c166e911 100644
--- a/Testing/otbMNFImageFilter.cxx
+++ b/Testing/otbMNFImageFilter.cxx
@@ -54,6 +54,7 @@ int otbMNFImageFilterTest ( int argc, char* argv[] )
   parser->AddOption( "--NumComponents", "Number of components to keep for output", "-n", 1, false );
   parser->AddOption( "--Inverse", "Performs also the inverse transformation (give the output name)", "-inv", 1, false );
   parser->AddOption( "--Radius", "Set the radius of the sliding window (def.1)", "-r", 2, false );
+  parser->AddOption( "--Normalize", "center and reduce data before MNF", "-norm", 0, false );
   parser->AddOutputImage();
 
   typedef otb::CommandLineArgumentParseResult ParserResultType;  
@@ -87,6 +88,7 @@ int otbMNFImageFilterTest ( int argc, char* argv[] )
     radiusX = parseResult->GetParameterUInt("--Radius",0);
     radiusY = parseResult->GetParameterUInt("--Radius",1);
   }
+  const bool normalization = parseResult->IsOptionPresent("--Normalize");
 
   // Main type definition
   const unsigned int Dimension = 2;
@@ -108,6 +110,7 @@ int otbMNFImageFilterTest ( int argc, char* argv[] )
   FilterType::Pointer filter = FilterType::New();
   filter->SetInput( reader->GetOutput() );
   filter->SetNumberOfPrincipalComponentsRequired( nbComponents );
+  filter->SetUseNormalization( normalization );
   filter->GetNoiseImageFilter()->SetRadius( radius );
 
   typedef otb::CommandProgressUpdate< FilterType > CommandType;
@@ -129,8 +132,9 @@ int otbMNFImageFilterTest ( int argc, char* argv[] )
     InvFilterType::Pointer invFilter = InvFilterType::New();
     invFilter->SetInput( filter->GetOutput() );
     invFilter->SetMeanValues( filter->GetMeanValues() );
+    if ( normalization )
+      invFilter->SetStdDevValues( filter->GetStdDevValues() );
     invFilter->SetTransformationMatrix( filter->GetTransformationMatrix() );
-    invFilter->SetNoiseTransformationMatrix( filter->GetNoiseTransformationMatrix() );
 
     typedef otb::CommandProgressUpdate< InvFilterType > CommandType2;
     CommandType2::Pointer invObserver = CommandType2::New();