diff --git a/app/GenericRegionMerging.cxx b/app/GenericRegionMerging.cxx
index f73cf0878b3b60c5059d2bdb3e48e50004376141..ca7cc4413c38e0bce586759d37534a2c872169bf 100644
--- a/app/GenericRegionMerging.cxx
+++ b/app/GenericRegionMerging.cxx
@@ -51,7 +51,8 @@ namespace otb
 					SetDescription("This application allows to use the Generic Region Merging library (GRM) and provides currently 3 homogeneity criteria: Euclidean Distance, Full Lambda Schedule and Baatz & Schape criterion.");
 
 					AddParameter(ParameterType_InputImage, "in", "Input Image");
-					AddParameter(ParameterType_OutputImage, "out", "Ouput Label Image");
+                    AddParameter(ParameterType_OutputImage, "out", "Ouput Label Image");
+//                    AddParameter(ParameterType_OutputImage, "outrvb", "Ouput Label Image (RVB 8bits)");
 
 					AddParameter(ParameterType_Choice, "criterion", "Homogeneity criterion to use");
 					AddChoice("criterion.bs", "Baatz & Schape");
@@ -98,6 +99,11 @@ namespace otb
 					const unsigned int niter = GetParameterInt("niter");
 					const int speed = GetParameterInt("speed");
 
+					// Output images
+					LabelImageType::Pointer labelImage = LabelImageType::New();
+					typedef otb::VectorImage<unsigned char, 2> RGBLabelImageType;
+					RGBLabelImageType::Pointer rvbLabelImage = RGBLabelImageType::New();
+
 					if(selectedCriterion == "bs")
 					{
 						const float cw = GetParameterFloat("cw");
@@ -120,7 +126,8 @@ namespace otb
 
 						segmenter.Update();
 
-						SetParameterOutputImage<LabelImageType>("out", segmenter.GetLabeledClusteredOutput());
+						labelImage = segmenter.GetLabeledClusteredOutput();
+//						rvbLabelImage = segmenter.GetClusteredImageOutput();
 					}
 					else if(selectedCriterion == "ed")
 					{
@@ -135,7 +142,8 @@ namespace otb
 
 						segmenter.Update();
 
-						SetParameterOutputImage<LabelImageType>("out", segmenter.GetLabeledClusteredOutput());
+						labelImage = segmenter.GetLabeledClusteredOutput();
+//						rvbLabelImage = segmenter.GetClusteredImageOutput();
 					}
 					else if(selectedCriterion == "fls")
 					{
@@ -150,8 +158,22 @@ namespace otb
 
 						segmenter.Update();
 
-						SetParameterOutputImage<LabelImageType>("out", segmenter.GetLabeledClusteredOutput());
+						labelImage = segmenter.GetLabeledClusteredOutput();
+						rvbLabelImage = segmenter.GetClusteredImageOutput();
 					}
+
+					// Set output image projection, origin and spacing for labelImage
+					labelImage->SetProjectionRef(image->GetProjectionRef());
+					labelImage->SetOrigin(image->GetOrigin());
+					labelImage->SetSpacing(image->GetSpacing());
+					SetParameterOutputImage<LabelImageType>("out", labelImage);
+
+//                    // Set output image projection, origin and spacing for RVB labelImage
+//					rvbLabelImage->SetProjectionRef(image->GetProjectionRef());
+//					rvbLabelImage->SetOrigin(image->GetOrigin());
+//					rvbLabelImage->SetSpacing(image->GetSpacing());
+//                    SetParameterOutputImage<RGBLabelImageType>("outrvb", rvbLabelImage);
+
 				}
 		};
 	} // end of namespace Wrapper