Index: qgis/qgis_unstable/src/core/raster/qgsrasterlayer.h
===================================================================
--- qgis.orig/qgis_unstable/src/core/raster/qgsrasterlayer.h	2009-02-25 15:55:37.000000000 -0500
+++ qgis/qgis_unstable/src/core/raster/qgsrasterlayer.h	2009-02-25 17:10:30.000000000 -0500
@@ -872,6 +872,14 @@
      *  \return pointer to color table
      */
     QList<QgsColorRampShader::ColorRampItem>* getColorTable( int theBandNoInt );
+
+    void setGeoTransform(QList<double> transform) {
+      for (int i = 0; i < 6; i++) {
+	mGeoTransform[i] = transform[i];
+      }
+      closeDataset();
+      readFile( source() );
+    }
   protected:
 
     /** reads vector layer specific state from project file Dom node.
Index: qgis/qgis_unstable/python/core/qgsrasterlayer.sip
===================================================================
--- qgis.orig/qgis_unstable/python/core/qgsrasterlayer.sip	2009-02-25 15:59:09.000000000 -0500
+++ qgis/qgis_unstable/python/core/qgsrasterlayer.sip	2009-02-25 17:10:36.000000000 -0500
@@ -491,6 +491,8 @@
      *  \return pointer to color table
      */
     //QList<QgsColorRampShader::ColorRampItem>* getColorTable ( int theBandNoInt );
+
+     void setGeoTransform(QList<double> transform);
  protected:
 
     /** reads vector layer specific state from project file Dom node.
Index: qgis/qgis_unstable/src/core/raster/qgsrasterlayer.cpp
===================================================================
--- qgis.orig/qgis_unstable/src/core/raster/qgsrasterlayer.cpp	2009-02-25 17:10:01.000000000 -0500
+++ qgis/qgis_unstable/src/core/raster/qgsrasterlayer.cpp	2009-02-25 17:10:18.000000000 -0500
@@ -388,7 +388,7 @@
 
   // Store timestamp
   mLastModified = lastModified( fileName );
-
+  GDALSetGeoTransform(mGdalBaseDataset, mGeoTransform);
   // Check if we need a warped VRT for this file.
   if (( GDALGetGeoTransform( mGdalBaseDataset, mGeoTransform ) == CE_None
         && ( mGeoTransform[1] < 0.0
