diff --git a/Code/IO/otbGDALImageIO.cxx b/Code/IO/otbGDALImageIO.cxx
index a7c40be765905f397fb2a3c3bd2fa2747ba5da14..5d08369039fbbba6d34bf3c6956ffcdfdf6373da 100755
--- a/Code/IO/otbGDALImageIO.cxx
+++ b/Code/IO/otbGDALImageIO.cxx
@@ -34,6 +34,7 @@
 #include "otbGDALImageIO.h"
 #include "otbMacro.h"
 #include "otbSystem.h"
+#include "otbImageBase.h"
 
 #include "itkMetaDataObject.h"
 #include "itkPNGImageIO.h"
@@ -498,7 +499,7 @@ void GDALImageIO::InternalReadImageInformation()
       
     char** papszMetadata;
     papszMetadata =  m_poDataset->GetMetadata( NULL );
-    
+        
     const char *pszValue;
     
     pszValue = CSLFetchNameValue( papszMetadata, "CEOS_LINE_SPACING_METERS" );
@@ -962,13 +963,117 @@ void GDALImageIO::InternalWriteImageInformation()
 	        m_poBands[i] = m_poDataset->GetRasterBand(i+1);
         }
 
-otbMsgDebugMacro( <<"Driver to write: GDAL - "<<extGDAL);
-otbMsgDebugMacro( <<"         Write file         : "<< m_FileName);
-otbMsgDebugMacro( <<"         GDAL file name     : "<< realFileName);
-otbMsgDebugMacro( <<"         Size               : "<<m_Dimensions[0]<<","<<m_Dimensions[1]);
-otbMsgDebugMacro( <<"         ComponentType      : "<<this->GetComponentType() );
-otbMsgDebugMacro( <<"         NumberOfComponents : "<<this->GetNumberOfComponents());
+	otbMsgDebugMacro( <<"Driver to write: GDAL - "<<extGDAL);
+	otbMsgDebugMacro( <<"         Write file         : "<< m_FileName);
+	otbMsgDebugMacro( <<"         GDAL file name     : "<< realFileName);
+	otbMsgDebugMacro( <<"         Size               : "<<m_Dimensions[0]<<","<<m_Dimensions[1]);
+	otbMsgDebugMacro( <<"         ComponentType      : "<<this->GetComponentType() );
+	otbMsgDebugMacro( <<"         NumberOfComponents : "<<this->GetNumberOfComponents());
+	
+	
+	// JULIEN: ADDING SUPPORT FOR METADATA WRITING.
+	
+
+	/*----------------------------------------------------------------------*/
+	/*-------------------------- METADATA ----------------------------------*/
+	/*----------------------------------------------------------------------*/
+ 
+	// Now initialize the itk dictionary
+	itk::MetaDataDictionary & dico = this->GetMetaDataDictionary();
+      
+    
+	/* -------------------------------------------------------------------- */
+	/*  Set Spacing								*/
+	/* -------------------------------------------------------------------- */    
+      
+	char** papszMetadata;
+	papszMetadata =  m_poDataset->GetMetadata( NULL );
+ 	itk::OStringStream oss;
+	oss.str("");
+	oss<<m_Spacing[0];
+	CSLSetNameValue( papszMetadata, "CEOS_LINE_SPACING_METERS",oss.str().c_str());
+	oss.str("");
+	oss<<m_Spacing[1];
+	CSLSetNameValue( papszMetadata, "CEOS_PIXEL_SPACING_METERS",oss.str().c_str());
+	oss.str("");            	 
 
+/* -------------------------------------------------------------------- */    
+/* Set the projection coordinate system of the image : ProjectionRef	*/
+/* -------------------------------------------------------------------- */
+    
+	if(ImageBase::GetProjectionRef(dico)!="")
+	  {
+	    m_poDataset->SetProjection(ImageBase::GetProjectionRef(dico).c_str());
+	  }
+
+/* -------------------------------------------------------------------- */    
+/* Set the GCPs	                                                        */
+/* -------------------------------------------------------------------- */
+        
+ 
+	if(ImageBase::GetGCPCount(dico)>0)
+	  {
+	    unsigned int gcpCount = ImageBase::GetGCPCount(dico);
+	    GDAL_GCP * gdalGcps = new GDAL_GCP[gcpCount];
+	    
+	    for(unsigned int gcpIndex = 0; gcpIndex < gcpCount;++gcpIndex)
+	      {
+		gdalGcps[gcpIndex].pszId = const_cast<char *>(ImageBase::GetGCPId(dico,gcpIndex).c_str());
+		gdalGcps[gcpIndex].pszInfo = const_cast<char *>(ImageBase::GetGCPInfo(dico,gcpIndex).c_str());
+		gdalGcps[gcpIndex].dfGCPPixel = ImageBase::GetGCPCol(dico,gcpIndex);
+		gdalGcps[gcpIndex].dfGCPLine = ImageBase::GetGCPRow(dico,gcpIndex);
+		gdalGcps[gcpIndex].dfGCPX = ImageBase::GetGCPX(dico,gcpIndex);
+		gdalGcps[gcpIndex].dfGCPY = ImageBase::GetGCPY(dico,gcpIndex);
+		gdalGcps[gcpIndex].dfGCPZ = ImageBase::GetGCPZ(dico,gcpIndex);
+	      }
+	    
+
+	    m_poDataset->SetGCPs(gcpCount,gdalGcps,ImageBase::GetGCPProjection(dico).c_str());
+	    delete [] gdalGcps;
+	  }
+
+/* -------------------------------------------------------------------- */    
+/*  Set the six coefficients of affine geoTtransform			*/
+/* -------------------------------------------------------------------- */
+
+  
+	if(!ImageBase::GetGeoTransform(dico).empty())
+	  {
+	    double * geoTransform = new double[6];
+	    std::vector<double> transformVector = ImageBase::GetGeoTransform(dico);
+
+	    for(unsigned int i=0; i<6;++i)
+	      {
+		geoTransform[i]=transformVector[i];
+	      }
+
+	    m_poDataset->SetGeoTransform(geoTransform);
+	    delete [] geoTransform;
+	  }
+
+/* -------------------------------------------------------------------- */
+/*      Report metadata.                                                */
+/* -------------------------------------------------------------------- */
+
+	std::string svalue="";
+	std::vector<std::string> keys = dico.GetKeys();
+	MetaDataKey key;
+	
+	for (unsigned int itkey=0; itkey<keys.size(); itkey++)
+	  {
+	     if(keys[itkey].compare(0,key.m_MetadataKey.length(),key.m_MetadataKey)==0)
+	       {
+		 itk::ExposeMetaData<std::string>(dico,keys[itkey],svalue);
+		 unsigned int equalityPos = svalue.find_first_of('=');
+		 std::string tag = svalue.substr(0,equalityPos);
+		 std::string value = svalue.substr(equalityPos+1);
+		 otbMsgDevMacro(<<"Metadata: "<<tag<<"="<<value);
+		 m_poDataset->SetMetadataItem(tag.c_str(),value.c_str(),NULL);
+	       }
+	  }
+
+	// END 
+	
 }	
 
 std::string GDALImageIO::TypeConversion(std::string name)
diff --git a/Code/IO/otbImage.txx b/Code/IO/otbImage.txx
index 816250229577736bb24c16f091fa3ed0087a025c..8fe0c716a447cee92354d7142a75749301696c57 100755
--- a/Code/IO/otbImage.txx
+++ b/Code/IO/otbImage.txx
@@ -35,97 +35,97 @@ Image<TPixel,VImageDimension,  foo>::Image()
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo> 
 std::string Image<TPixel, VImageDimension,  foo>::GetProjectionRef( void )
 {
-   return ( this->ImageBase::GetProjectionRef( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetProjectionRef( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo> 
 std::string Image<TPixel, VImageDimension,  foo>::GetGCPProjection( void )
 {
-   return ( this->ImageBase::GetGCPProjection( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetGCPProjection( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 unsigned int Image<TPixel, VImageDimension,  foo>::GetGCPCount( void  ) 
 {
-   return ( this->ImageBase::GetGCPCount( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetGCPCount( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 OTB_GCP & Image<TPixel, VImageDimension,  foo>::GetGCPs ( unsigned int GCPnum )
 {
-   return ( this->ImageBase::GetGCPs( this->GetMetaDataDictionary(), GCPnum ) );	
+   return (this->ImageBase::GetGCPs( this->GetMetaDataDictionary(), GCPnum ) );	
 }
     
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 std::string Image<TPixel, VImageDimension,  foo>::GetGCPId( unsigned int GCPnum  ) 
 {
-   return ( this->ImageBase::GetGCPId( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPId( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 std::string Image<TPixel, VImageDimension,  foo>::GetGCPInfo( unsigned int GCPnum )
 {
-   return ( this->ImageBase::GetGCPInfo( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPInfo( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 double Image<TPixel, VImageDimension,  foo>::GetGCPRow( unsigned int GCPnum ) 
 {
-   return ( this->ImageBase::GetGCPRow( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPRow( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 double Image<TPixel, VImageDimension,  foo>::GetGCPCol( unsigned int GCPnum )	
 {
-   return ( this->ImageBase::GetGCPCol( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPCol( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 double Image<TPixel, VImageDimension,  foo>::GetGCPX( unsigned int GCPnum ) 
 {	
-   return ( this->ImageBase::GetGCPX( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPX( this->GetMetaDataDictionary(), GCPnum ) );	
 }
  
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 double Image<TPixel, VImageDimension,  foo>::GetGCPY( unsigned int GCPnum ) 
 {
-   return ( this->ImageBase::GetGCPY( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPY( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 double Image<TPixel, VImageDimension,  foo>::GetGCPZ( unsigned int GCPnum ) 
 {
-   return ( this->ImageBase::GetGCPZ( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPZ( this->GetMetaDataDictionary(), GCPnum ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 ImageBase::VectorType Image<TPixel, VImageDimension,  foo>::GetGeoTransform( void ) 
 {
-   return ( this->ImageBase::GetGeoTransform( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetGeoTransform( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 ImageBase::VectorType Image<TPixel, VImageDimension,  foo>::GetUpperLeftCorner( void )
 {
-   return ( this->ImageBase::GetUpperLeftCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetUpperLeftCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 ImageBase::VectorType Image<TPixel, VImageDimension,  foo>::GetUpperRightCorner( void )
 {
-   return ( this->ImageBase::GetUpperRightCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetUpperRightCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 ImageBase::VectorType Image<TPixel, VImageDimension,  foo>::GetLowerLeftCorner( void )
 {
-   return ( this->ImageBase::GetLowerLeftCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetLowerLeftCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension,  unsigned int foo>   
 ImageBase::VectorType Image<TPixel, VImageDimension,  foo>::GetLowerRightCorner( void )
 {
-   return ( this->ImageBase::GetLowerRightCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetLowerRightCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo> 
diff --git a/Code/IO/otbImageBase.cxx b/Code/IO/otbImageBase.cxx
index 3dcbb67eb60c4341a0b59f44751b62a79f0c0807..df92c04bcee14416254352394078f24d0e18e2ef 100755
--- a/Code/IO/otbImageBase.cxx
+++ b/Code/IO/otbImageBase.cxx
@@ -86,7 +86,8 @@ OTB_GCP & ImageBase::GetGCPs(MetaDataDictionaryType & dict, unsigned int GCPnum
   
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
+       
+     itk::ExposeMetaData<OTB_GCP>(dict, key,m_GCP);
      }
   return ( m_GCP );	
 	
@@ -102,8 +103,9 @@ std::string ImageBase::GetGCPId(MetaDataDictionaryType & dict, unsigned int GCPn
   
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
-     return ( m_GCP.m_Id );
+       OTB_GCP gcp;
+       itk::ExposeMetaData<OTB_GCP>(dict, key, gcp);
+       return ( gcp.m_Id );
      }
   else
      return ("");
@@ -119,8 +121,9 @@ std::string ImageBase::GetGCPInfo(MetaDataDictionaryType & dict, unsigned int GC
   
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
-     return ( m_GCP.m_Info );
+       OTB_GCP gcp;
+     itk::ExposeMetaData<OTB_GCP>(dict, key, gcp);
+     return ( gcp.m_Info );
      }
   else
      return ("");
@@ -137,8 +140,9 @@ double ImageBase::GetGCPRow(MetaDataDictionaryType & dict, unsigned int GCPnum )
 
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
-     return ( m_GCP.m_GCPRow );
+       OTB_GCP gcp;
+     itk::ExposeMetaData<OTB_GCP>(dict, key, gcp);
+     return ( gcp.m_GCPRow );
      }
   else
      return (0);
@@ -155,8 +159,9 @@ double ImageBase::GetGCPCol(MetaDataDictionaryType & dict, unsigned int GCPnum )
 
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
-     return ( m_GCP.m_GCPCol );
+       OTB_GCP gcp;
+     itk::ExposeMetaData<OTB_GCP>(dict, key, gcp);
+     return ( gcp.m_GCPCol );
      }
   else
      return (0);
@@ -172,8 +177,9 @@ double ImageBase::GetGCPX(MetaDataDictionaryType & dict, unsigned int GCPnum )
       
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
-     return ( m_GCP.m_GCPX );
+       OTB_GCP gcp;
+     itk::ExposeMetaData<OTB_GCP>(dict, key, gcp);
+     return ( gcp.m_GCPX );
      }
   else
      return (0);
@@ -189,8 +195,9 @@ double ImageBase::GetGCPY(MetaDataDictionaryType & dict, unsigned int GCPnum )
   
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
-     return ( m_GCP.m_GCPY );
+       OTB_GCP gcp;
+     itk::ExposeMetaData<OTB_GCP>(dict, key, gcp);
+     return ( gcp.m_GCPY );
      }
   else
      return (0);
@@ -206,8 +213,9 @@ double ImageBase::GetGCPZ(MetaDataDictionaryType & dict, unsigned int GCPnum )
      
   if(dict.HasKey(key))
      {
-     itk::ExposeMetaData<OTB_GCP>(dict, key, m_GCP);
-     return ( m_GCP.m_GCPZ );
+       OTB_GCP gcp;
+     itk::ExposeMetaData<OTB_GCP>(dict, key, gcp);
+     return ( gcp.m_GCPZ );
      }
   else
      return (0);
diff --git a/Code/IO/otbImageBase.h b/Code/IO/otbImageBase.h
index 64fca2ad18396aba05d5ddb19f8fa7bb3d3f119a..eafc7ab38dfdecbed7f1c0af34ccaf2d64080fc8 100755
--- a/Code/IO/otbImageBase.h
+++ b/Code/IO/otbImageBase.h
@@ -48,58 +48,58 @@ public:
   
   /** Get the projection coordinate system of the image. */
   
-  std::string GetProjectionRef( MetaDataDictionaryType & dict );
+  static std::string GetProjectionRef( MetaDataDictionaryType & dict );
   virtual std::string GetProjectionRef( void ) = 0;
   
   /** Get the GCP projection coordinates of the image. */
   
-  std::string GetGCPProjection( MetaDataDictionaryType & dict );
+  static std::string GetGCPProjection( MetaDataDictionaryType & dict );
   virtual std::string GetGCPProjection( void ) = 0;
 
-  unsigned int GetGCPCount( MetaDataDictionaryType & dict );
+  static unsigned int GetGCPCount( MetaDataDictionaryType & dict );
   virtual unsigned int GetGCPCount( void ) = 0;
 
   OTB_GCP & GetGCPs(MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual OTB_GCP & GetGCPs( unsigned int GCPnum ) = 0;
     
-  std::string GetGCPId( MetaDataDictionaryType & dict, unsigned int GCPnum );
+  static std::string GetGCPId( MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual std::string GetGCPId( unsigned int GCPnum ) = 0;
   
-  std::string GetGCPInfo( MetaDataDictionaryType & dict, unsigned int GCPnum );
+  static std::string GetGCPInfo( MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual std::string GetGCPInfo( unsigned int GCPnum ) = 0;
   
-  double GetGCPRow( MetaDataDictionaryType & dict, unsigned int GCPnum );
+  static double GetGCPRow( MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual double GetGCPRow( unsigned int GCPnum ) = 0;
   
-  double GetGCPCol( MetaDataDictionaryType & dict, unsigned int GCPnum );
+  static double GetGCPCol( MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual double GetGCPCol( unsigned int GCPnum ) = 0;
   
-  double GetGCPX( MetaDataDictionaryType & dict, unsigned int GCPnum );
+  static double GetGCPX( MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual double GetGCPX( unsigned int GCPnum ) = 0;
   
-  double GetGCPY( MetaDataDictionaryType & dict, unsigned int GCPnum );
+  static double GetGCPY( MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual double GetGCPY( unsigned int GCPnum ) = 0;
   
-  double GetGCPZ( MetaDataDictionaryType & dict, unsigned int GCPnum );
+  static double GetGCPZ( MetaDataDictionaryType & dict, unsigned int GCPnum );
   virtual double GetGCPZ( unsigned int GCPnum ) = 0;
   
   /** Get the six coefficients of affine geoTtransform. */
    
-  VectorType GetGeoTransform( MetaDataDictionaryType & dict );
+  static VectorType GetGeoTransform( MetaDataDictionaryType & dict );
   virtual VectorType GetGeoTransform( void ) = 0;
  
   /** Get image corners. */  
   
-  VectorType GetUpperLeftCorner( MetaDataDictionaryType & dict );
+  static VectorType GetUpperLeftCorner( MetaDataDictionaryType & dict );
   virtual VectorType GetUpperLeftCorner() = 0; 
   
-  VectorType GetUpperRightCorner( MetaDataDictionaryType & dict );
+  static VectorType GetUpperRightCorner( MetaDataDictionaryType & dict );
   virtual VectorType GetUpperRightCorner() = 0;      
   
-  VectorType GetLowerLeftCorner( MetaDataDictionaryType & dict );
+  static VectorType GetLowerLeftCorner( MetaDataDictionaryType & dict );
   virtual VectorType GetLowerLeftCorner() = 0; 
   
-  VectorType GetLowerRightCorner( MetaDataDictionaryType & dict );
+  static VectorType GetLowerRightCorner( MetaDataDictionaryType & dict );
   virtual VectorType GetLowerRightCorner() = 0; 
   
   void PrintSelf(std::ostream& os, itk::Indent indent, const MetaDataDictionaryType & dict) const;
diff --git a/Code/IO/otbVectorImage.txx b/Code/IO/otbVectorImage.txx
index c52406243429f5c9018bc402acede3caa4c14868..6282dcc83d6af5e9fb849cee012f1c0aa69a987b 100644
--- a/Code/IO/otbVectorImage.txx
+++ b/Code/IO/otbVectorImage.txx
@@ -36,19 +36,19 @@ VectorImage<TPixel,VImageDimension, foo>::VectorImage()
 template <class TPixel, unsigned int VImageDimension, unsigned int foo> 
 std::string VectorImage<TPixel, VImageDimension, foo>::GetProjectionRef( void )
 {
-   return ( this->ImageBase::GetProjectionRef( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetProjectionRef( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo> 
 std::string VectorImage<TPixel, VImageDimension, foo>::GetGCPProjection( void )
 {
-   return ( this->ImageBase::GetGCPProjection( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetGCPProjection( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 unsigned int VectorImage<TPixel, VImageDimension, foo>::GetGCPCount( void  ) 
 {
-   return ( this->ImageBase::GetGCPCount( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetGCPCount( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
@@ -60,73 +60,73 @@ OTB_GCP & VectorImage<TPixel, VImageDimension, foo>::GetGCPs ( unsigned int GCPn
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 std::string VectorImage<TPixel, VImageDimension, foo>::GetGCPId( unsigned int GCPnum  ) 
 {
-   return ( this->ImageBase::GetGCPId( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPId( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 std::string VectorImage<TPixel, VImageDimension, foo>::GetGCPInfo( unsigned int GCPnum )
 {
-   return ( this->ImageBase::GetGCPInfo( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPInfo( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 double VectorImage<TPixel, VImageDimension, foo>::GetGCPRow( unsigned int GCPnum ) 
 {
-   return ( this->ImageBase::GetGCPRow( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPRow( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 double VectorImage<TPixel, VImageDimension, foo>::GetGCPCol( unsigned int GCPnum )	
 {
-   return ( this->ImageBase::GetGCPCol( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPCol( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 double VectorImage<TPixel, VImageDimension, foo>::GetGCPX( unsigned int GCPnum ) 
 {	
-   return ( this->ImageBase::GetGCPX( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPX( this->GetMetaDataDictionary(), GCPnum ) );	
 }
  
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 double VectorImage<TPixel, VImageDimension, foo>::GetGCPY( unsigned int GCPnum ) 
 {
-   return ( this->ImageBase::GetGCPY( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPY( this->GetMetaDataDictionary(), GCPnum ) );	
 }
   
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 double VectorImage<TPixel, VImageDimension, foo>::GetGCPZ( unsigned int GCPnum ) 
 {
-   return ( this->ImageBase::GetGCPZ( this->GetMetaDataDictionary(), GCPnum ) );	
+   return ( ImageBase::GetGCPZ( this->GetMetaDataDictionary(), GCPnum ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 ImageBase::VectorType VectorImage<TPixel, VImageDimension, foo>::GetGeoTransform( void ) 
 {
-   return ( this->ImageBase::GetGeoTransform( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetGeoTransform( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 ImageBase::VectorType VectorImage<TPixel, VImageDimension, foo>::GetUpperLeftCorner( void )
 {
-   return ( this->ImageBase::GetUpperLeftCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetUpperLeftCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 ImageBase::VectorType VectorImage<TPixel, VImageDimension, foo>::GetUpperRightCorner( void )
 {
-   return ( this->ImageBase::GetUpperRightCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetUpperRightCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 ImageBase::VectorType VectorImage<TPixel, VImageDimension, foo>::GetLowerLeftCorner( void )
 {
-   return ( this->ImageBase::GetLowerLeftCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetLowerLeftCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>   
 ImageBase::VectorType VectorImage<TPixel, VImageDimension, foo>::GetLowerRightCorner( void )
 {
-   return ( this->ImageBase::GetLowerRightCorner( this->GetMetaDataDictionary() ) );	
+   return ( ImageBase::GetLowerRightCorner( this->GetMetaDataDictionary() ) );	
 }
 
 template <class TPixel, unsigned int VImageDimension, unsigned int foo>