Index: /trunk/Mars/mcore/fits.h
===================================================================
--- /trunk/Mars/mcore/fits.h	(revision 16843)
+++ /trunk/Mars/mcore/fits.h	(revision 16844)
@@ -744,5 +744,5 @@
     virtual void WriteRowToCopyFile(size_t row)
     {
-        if (row==fRow+1 && !fTable.isCompressed)
+        if (row==fRow+1)
         {
             const uint8_t offset = (row*fTable.bytes_per_row)%4;
Index: /trunk/Mars/mcore/zfits.h
===================================================================
--- /trunk/Mars/mcore/zfits.h	(revision 16843)
+++ /trunk/Mars/mcore/zfits.h	(revision 16844)
@@ -259,7 +259,8 @@
     //overrides fits.h method with empty one
     //work is done in ReadBinaryRow because it requires volatile data from ReadBinaryRow
-    virtual void WriteRowToCopyFile(size_t )
-    {
-
+    virtual void WriteRowToCopyFile(size_t row)
+    {
+        if (row == fRow+1)
+            fChkData.add(fBufferRow);
     }
 
@@ -288,5 +289,5 @@
             read(fCompressedBuffer.data(), sizeToRead);
 
-            if (fCurrentRow == previousRow+1 &&
+            if (requestedTile == currentTile+1 &&
                 fCopy.is_open() &&
                 fCopy.good())
