diff --git a/Code/IO/otbBSQImageIO.cxx b/Code/IO/otbBSQImageIO.cxx
index 97828ec28b40cebef90f028ec4c5bf601fa0721e..68d776cfde6d9758cce7f746f5baa8563c7784e2 100644
--- a/Code/IO/otbBSQImageIO.cxx
+++ b/Code/IO/otbBSQImageIO.cxx
@@ -50,9 +50,10 @@ BSQImageIO::BSQImageIO()
   // Set default spacing to one
   m_Spacing[0] = 1.0;
   m_Spacing[1] = 1.0;
-  // Set default origin to zero
-  m_Origin[0] = 0.0;
-  m_Origin[1] = 0.0;
+  // Set default origin to [0.5 , 0.5] 
+  // (consistency between ImageIO, see Mantis #942)
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
   m_ChannelsFile = NULL;
   m_FlagWriteImageInformation = true;
 
diff --git a/Code/IO/otbLUMImageIO.cxx b/Code/IO/otbLUMImageIO.cxx
index ab2d6e42d3a18d971869257a1cc00afcaecf39a3..6b81af8c5c8404c1809527104d8aee0b256f7925 100644
--- a/Code/IO/otbLUMImageIO.cxx
+++ b/Code/IO/otbLUMImageIO.cxx
@@ -46,9 +46,10 @@ LUMImageIO::LUMImageIO()
   // Set default spacing to one
   m_Spacing[0] = 1.0;
   m_Spacing[1] = 1.0;
-  // Set default origin to zero
-  m_Origin[0] = 0.0;
-  m_Origin[1] = 0.0;
+  // Set default origin to [0.5 , 0.5] 
+  // (consistency between ImageIO, see Mantis #942)
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
 
   m_FlagWriteImageInformation = true;
 
diff --git a/Code/IO/otbMSTARImageIO.cxx b/Code/IO/otbMSTARImageIO.cxx
index 70c74eca02b3e96120d8db3b1cac984f08d68773..fde24306fae87295f9f793081c0a08b28edb5824 100644
--- a/Code/IO/otbMSTARImageIO.cxx
+++ b/Code/IO/otbMSTARImageIO.cxx
@@ -53,8 +53,10 @@ MSTARImageIO::MSTARImageIO()
   m_Spacing[0] = 1.0;
   m_Spacing[1] = 1.0;
 
-  m_Origin[0] = 0.0;
-  m_Origin[1] = 0.0;
+  // Set default origin to [0.5 , 0.5] 
+  // (consistency between ImageIO, see Mantis #942)
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
 
   m_BytePerPixel = 0;
 
diff --git a/Code/IO/otbMWImageIO.cxx b/Code/IO/otbMWImageIO.cxx
index 606d75a7584cd50a3b038b74b08c57eedd899316..5fac24f45fd1d096839d2042946838f404a94441 100644
--- a/Code/IO/otbMWImageIO.cxx
+++ b/Code/IO/otbMWImageIO.cxx
@@ -46,9 +46,10 @@ MWImageIO::MWImageIO()
   // Set default spacing to one
   m_Spacing[0] = 1.0;
   m_Spacing[1] = 1.0;
-  // Set default origin to zero
-  m_Origin[0] = 0.0;
-  m_Origin[1] = 0.0;
+  // Set default origin to [0.5 , 0.5] 
+  // (consistency between ImageIO, see Mantis #942)
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
 
   m_FlagWriteImageInformation = true;
   m_Ncom = 0;
diff --git a/Code/IO/otbONERAImageIO.cxx b/Code/IO/otbONERAImageIO.cxx
index 8ae5643814dc22bd5d61914545e4c35a8bae1ab8..7327270faf8cf6629e169746c60a0cc14e2ca5c3 100644
--- a/Code/IO/otbONERAImageIO.cxx
+++ b/Code/IO/otbONERAImageIO.cxx
@@ -41,9 +41,10 @@ ONERAImageIO::ONERAImageIO()
   // Set default spacing to one
   m_Spacing[0] = 1.0;
   m_Spacing[1] = 1.0;
-  // Set default origin to zero
-  m_Origin[0] = 0.0;
-  m_Origin[1] = 0.0;
+  // Set default origin to [0.5 , 0.5] 
+  // (consistency between ImageIO, see Mantis #942)
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
 
   m_FlagWriteImageInformation = true;
 
diff --git a/Code/IO/otbRADImageIO.cxx b/Code/IO/otbRADImageIO.cxx
index a638acb080320c0f62df358dd413248e724e353c..4a4e4990088d8152ba96b51456c53eb76ca7a2a7 100644
--- a/Code/IO/otbRADImageIO.cxx
+++ b/Code/IO/otbRADImageIO.cxx
@@ -57,9 +57,10 @@ RADImageIO::RADImageIO()
   // Set default spacing to one
   m_Spacing[0] = 1.0;
   m_Spacing[1] = 1.0;
-  // Set default origin to zero
-  m_Origin[0] = 0.0;
-  m_Origin[1] = 0.0;
+  // Set default origin to [0.5 , 0.5] 
+  // (consistency between ImageIO, see Mantis #942)
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
   m_ChannelsFile = NULL;
   m_FlagWriteImageInformation = true;
 
diff --git a/Code/IO/otbTileMapImageIO.cxx b/Code/IO/otbTileMapImageIO.cxx
index 1943ced15988921a28d47b3a7cad60922b2dfc09..db9c1c72ca346452b815075f3a3f1e8b9ff58e76 100644
--- a/Code/IO/otbTileMapImageIO.cxx
+++ b/Code/IO/otbTileMapImageIO.cxx
@@ -54,9 +54,10 @@ TileMapImageIO::TileMapImageIO()
   // Set default spacing to one
   m_Spacing[0] = 1.0;
   m_Spacing[1] = 1.0;
-  // Set default origin to zero
-  m_Origin[0] = 0.0;
-  m_Origin[1] = 0.0;
+  // Set default origin to [0.5 , 0.5] 
+  // (consistency between ImageIO, see Mantis #942)
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
 
   m_NbBands = 3;
   m_FlagWriteImageInformation = true;
@@ -412,8 +413,8 @@ void TileMapImageIO::ReadImageInformation()
   // Default Spacing
   m_Spacing[0] = 1;
   m_Spacing[1] = 1;
-  m_Origin[0] = 0;
-  m_Origin[1] = 0;
+  m_Origin[0] = 0.5;
+  m_Origin[1] = 0.5;
 
 
   if (m_FileName.empty() == true)
@@ -657,8 +658,8 @@ void TileMapImageIO::InternalWrite(double x, double y, const void* buffer)
     imageIO->SetDimensions(1, m_TileSize);
     imageIO->SetSpacing(0, 1);
     imageIO->SetSpacing(1, 1);
-    imageIO->SetOrigin(0, 0);
-    imageIO->SetOrigin(1, 0);
+    imageIO->SetOrigin(0, 0.5);
+    imageIO->SetOrigin(1, 0.5);
     imageIO->SetNumberOfComponents(3);
 
     vnl_vector<double> axisDirection(2);