Index: trunk/Mars/mcore/zfits.h
===================================================================
--- trunk/Mars/mcore/zfits.h	(revision 17682)
+++ trunk/Mars/mcore/zfits.h	(revision 17685)
@@ -276,5 +276,5 @@
     {
         if (row == fRow+1)
-            fRawsum.add(fBufferRow, false);
+            fRawsum.add(fBufferRow);
     }
 
@@ -300,11 +300,14 @@
         //const int64_t currentSubTile     = currentTile   % fShrinkFactor;
 
+        // Is this the first tile we read at all?
+        const bool isFirstTile = fCurrentRow<0;
+
+        // Is this just the next tile in the sequence?
+        const bool isNextTile = requestedTile==currentTile+1 || isFirstTile;
+
         fCurrentRow = rowNum;
 
-        // Is this just the next tile in the sequence?
-        const bool isNextTile = requestedTile==currentTile+1;
-
         // Do we have to read a new tile from disk?
-        if (requestedTile!=currentTile)
+        if (requestedTile!=currentTile || isFirstTile)
         {
             //skip to the beginning of the tile
@@ -316,5 +319,5 @@
             // seek for the sub tile. If we were just reading the previous one
             // we can skip that.
-            if (!isNextTile || requestedTile==0)
+            if (!isNextTile || isFirstTile)
             {
                 // step to the beginnig of the super tile
@@ -383,8 +386,7 @@
 
 
-            // If we are reading sequentially, calcuakte checksum
+            // If we are reading sequentially, calcualte checksum
             if (isNextTile)
             {
-//                std::cout << "Updating checksum" << std::endl;
                 // Padding for checksum calculation
                 memset(fCompressedBuffer.data(),   0, offset);
