Index: trunk/Mars/mcore/fits.h
===================================================================
--- trunk/Mars/mcore/fits.h	(revision 16425)
+++ trunk/Mars/mcore/fits.h	(revision 16426)
@@ -477,5 +477,5 @@
                 return 0;
 
-            const streamoff shift = Get<streamoff>("THEAP");
+            const size_t shift = Get<size_t>("THEAP");
             return shift <= total_bytes ? 0 : shift - total_bytes;
         }
Index: trunk/Mars/mcore/zfits.h
===================================================================
--- trunk/Mars/mcore/zfits.h	(revision 16425)
+++ trunk/Mars/mcore/zfits.h	(revision 16426)
@@ -190,7 +190,7 @@
             const char *src = fTransposedBuffer.data();
 
-            for (auto it=fTable.sortedCols.begin(); it!=fTable.sortedCold.end(); it++)
+            for (auto it=fTable.sortedCols.begin(); it!=fTable.sortedCols.end(); it++)
             {
-                char *buffer = fBuffer.data() + col->offset; // pointer to column (destination buffer)
+                char *buffer = fBuffer.data() + it->offset; // pointer to column (destination buffer)
 
                 switch (it->comp)
@@ -201,5 +201,5 @@
                     for (char *dest=buffer; dest<buffer+thisRoundNumRows*fTable.bytes_per_row; dest+=fTable.bytes_per_row) // row-by-row
                     {
-                        memcpy(dest, src, col->bytes);
+                        memcpy(dest, src, it->bytes);
                         src += it->bytes;  // next column
                     }
@@ -208,9 +208,9 @@
                 default:
                     // transposed copy
-                    for (char *elem=buffer; elem<buffer+col->bytes; elem+=col->size) // element-by-element (arrays)
+                    for (char *elem=buffer; elem<buffer+it->bytes; elem+=it->size) // element-by-element (arrays)
                     {
                         for (char *dest=elem; dest<elem+thisRoundNumRows*fTable.bytes_per_row; dest+=fTable.bytes_per_row) // row-by-row
                         {
-                            memcpy(dest, src, col->size);
+                            memcpy(dest, src, it->size);
                             src += it->size; // next element
                         }
@@ -291,10 +291,10 @@
     void UncompressBuffer(const uint32_t &catalogCurrentRow, const uint32_t &thisRoundNumRows)
     {
-        char *dest = fTransposeBuffer.data();
+        char *dest = fTransposedBuffer.data();
 
         //uncompress column by column
         for (uint32_t i=0; i<fTable.sortedCols.size(); i++)
         {
-            const Column &col = fTable.sortedCols[i];
+            const fits::Table::Column &col = fTable.sortedCols[i];
             if (col.num == 0)
                 continue;
@@ -314,11 +314,9 @@
             {
                 case UNCOMPRESSED:
-                    const uint32_t offset = UncompressUNCOMPRESSED(dest, src, thisRoundNumRows, col.size, col.num);
-                    dest += offset;
+                    dest += UncompressUNCOMPRESSED(dest, src, thisRoundNumRows, col.size, col.num);
                     break;
 
                 case SMOOTHMAN:
-                    const uint32_t offset = UncompressSMOOTHMAN(reinterpret_cast<int16_t*>(dest), src, thisRoundNumRows, col.size, col.num);
-                    dest += offset;
+                    dest += UncompressSMOOTHMAN(reinterpret_cast<int16_t*>(dest), src, thisRoundNumRows, col.size, col.num);
                     break;
 
