--- gdal-1.4.2.ori/frmts/gtiff/geotiff.cpp	2007-07-28 13:59:18.000000000 +0200
+++ gdal-1.4.2/frmts/gtiff/geotiff.cpp	2007-07-29 16:46:50.000000000 +0200
@@ -2001,14 +2001,9 @@
 
         for( j = 0; j < nOverviewCount; j++ )
         {
-            int    nOvFactor;
-
             poODS = papoOverviewDS[j];
 
-            nOvFactor = (int) 
-                (0.5 + GetRasterXSize() / (double) poODS->GetRasterXSize());
-
-            if( nOvFactor == panOverviewList[i] )
+            if( (GetRasterXSize() + panOverviewList[i] - 1) / panOverviewList[i] == poODS->GetRasterXSize())
                 panOverviewList[i] *= -1;
         }


