diff --git a/Testing/Code/Common/CMakeLists.txt b/Testing/Code/Common/CMakeLists.txt
index 90cbc76370e52d12edf3b296bef63fa2fe948621..a0dda7e79f84245a82bb887d9b145216e19dc1f9 100644
--- a/Testing/Code/Common/CMakeLists.txt
+++ b/Testing/Code/Common/CMakeLists.txt
@@ -400,12 +400,11 @@ ADD_TEST(coTuLineSpatialObjectListToPointSetFilter ${COMMON_TESTS3}
 
          
 IF(OTB_DATA_USE_LARGEINPUT)
+# cf. bug 303
 ADD_TEST(coTvExtractROITestMetaData_TIFF ${COMMON_TESTS3}
-         --compare-n-ascii ${NOTOL} 2
+         --compare-ascii ${NOTOL}
          ${TEMP}/coTvExtractROITestMetaData1.txt
          ${TEMP}/coTvExtractROITestMetaData2.txt
-         ${TEMP}/coTvExtractROITestMetaData1_writeRead.txt
-         ${TEMP}/coTvExtractROITestMetaData2_writeRead.txt
          --ignore-lines-with 1 Origin:
          otbExtractROITestMetaData
          ${LARGEINPUT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN/02APR01105228-P1BS-000000128955_01_P001.TIF
@@ -413,25 +412,6 @@ ADD_TEST(coTvExtractROITestMetaData_TIFF ${COMMON_TESTS3}
          ${TEMP}/coTvExtractROITestMetaData2.tif
          ${TEMP}/coTvExtractROITestMetaData1.txt
          ${TEMP}/coTvExtractROITestMetaData2.txt
-         ${TEMP}/coTvExtractROITestMetaData1_writeRead.txt
-         ${TEMP}/coTvExtractROITestMetaData2_writeRead.txt
-         )
-         
-ADD_TEST(coTvExtractROITestMetaData_HDR ${COMMON_TESTS3}
-         --compare-n-ascii ${NOTOL} 2
-         ${TEMP}/coTvExtractROITestMetaData1_hdr.txt
-         ${TEMP}/coTvExtractROITestMetaData2_hdr.txt
-         ${TEMP}/coTvExtractROITestMetaData1_writeRead_hdr.txt
-         ${TEMP}/coTvExtractROITestMetaData2_writeRead_hdr.txt
-         --ignore-lines-with 1 Origin:
-         otbExtractROITestMetaData
-         ${LARGEINPUT}/QUICKBIRD/TOULOUSE/000000128955_01_P001_PAN/02APR01105228-P1BS-000000128955_01_P001.TIF
-         ${TEMP}/coTvExtractROITestMetaData1.hdr
-         ${TEMP}/coTvExtractROITestMetaData2.hdr
-         ${TEMP}/coTvExtractROITestMetaData1_hdr.txt
-         ${TEMP}/coTvExtractROITestMetaData2_hdr.txt
-         ${TEMP}/coTvExtractROITestMetaData1_writeRead_hdr.txt
-         ${TEMP}/coTvExtractROITestMetaData2_writeRead_hdr.txt
          )
 ENDIF(OTB_DATA_USE_LARGEINPUT)
 
diff --git a/Testing/Code/Common/otbExtractROITestMetaData.cxx b/Testing/Code/Common/otbExtractROITestMetaData.cxx
index d3de368291ec0dd579c3c603e6f10c4f6d5303e2..aa49d0876b755b7d6f5ed516ff06ff3af226e89e 100644
--- a/Testing/Code/Common/otbExtractROITestMetaData.cxx
+++ b/Testing/Code/Common/otbExtractROITestMetaData.cxx
@@ -92,32 +92,47 @@ int otbExtractROITestMetaData(int argc, char * argv[])
   // Write left up image
   writer00->SetFileName(argv[2]);
   writer00->SetInput(extract00->GetOutput());
+  writer00->SetWriteGeomFile(true);
   writer00->Update();
 
   // Write image with non zero index
   writer57->SetFileName(argv[3]);
   writer57->SetInput(extract57->GetOutput());
+  writer57->SetWriteGeomFile(true);
   writer57->Update();
 
   // Reading image with left up index
   reader00->SetFileName(argv[2]);
   reader00->GenerateOutputInformation();
 
-  // Save extract image information
-  std::ofstream file00_read;
-  file00_read.open(argv[6]);
-  file00_read << static_cast<ImageType::Pointer>(reader00->GetOutput()) << std::endl;
-  file00_read.close();
+  if( reader00->GetOutput()->GetProjectionRef() != "")
+    {
+    std::cout<<"The read generated extract from index (0,0) must NOT contain a ProjectionReference."<<std::endl;
+    return EXIT_FAILURE;
+    }
+
+  if( reader00->GetOutput()->GetGCPCount() == 0)
+    {
+    std::cout<<"The read generated extract from index (0,0) must contain a list a GCPs.."<<std::endl;
+    return EXIT_FAILURE;
+    }
 
   // Reading image with non-zero index
   reader57->SetFileName(argv[3]);
   reader57->GenerateOutputInformation();
 
-  // Save extract image information
-  std::ofstream file57_read;
-  file57_read.open(argv[7]);
-  file57_read << static_cast<ImageType::Pointer>(reader57->GetOutput()) << std::endl;
-  file57_read.close();
+  if( reader57->GetOutput()->GetProjectionRef() != "")
+    {
+    std::cout<<"The read generated extract from index (x,y) must NOT contain a ProjectionReference."<<std::endl;
+    return EXIT_FAILURE;
+    }
+  
+  if( reader57->GetOutput()->GetGCPCount() != 0)
+    {
+    std::cout<<"The read generated extract from index (x,y) must NOT contain a list a GCPs.."<<std::endl;
+    return EXIT_FAILURE;
+    }
+
 
   return EXIT_SUCCESS;
 }