Index: trunk/FACT++/src/fitsCompressor.cc
===================================================================
--- trunk/FACT++/src/fitsCompressor.cc	(revision 16809)
+++ trunk/FACT++/src/fitsCompressor.cc	(revision 16810)
@@ -461,13 +461,9 @@
   uint32_t numRows;
   uint64_t size;
-  TileHeader(uint32_t nRows=0, uint64_t s=0)
-  {
-      id[0]='T';
-      id[1]='I';
-      id[2]='L';
-      id[3]='E';
-      numRows=nRows;
-      size=s;
-  };
+  TileHeader(uint32_t nRows=0,
+             uint64_t s=0) : id({'T', 'I', 'L', 'E'}),
+                             numRows(nRows),
+                             size(s)
+  { };
 } __attribute__((__packed__)) TileHeader;
 
Index: trunk/Mars/mcore/zfits.h
===================================================================
--- trunk/Mars/mcore/zfits.h	(revision 16809)
+++ trunk/Mars/mcore/zfits.h	(revision 16810)
@@ -79,4 +79,20 @@
 
 private:
+    typedef struct TileHeader
+    {
+      char     id[4];
+      uint32_t numRows;
+      uint64_t size;
+      TileHeader(uint32_t nRows=0,
+                 uint64_t s=0) : id({'T', 'I', 'L', 'E'}),
+                                 numRows(nRows),
+                                 size(s)
+      { };
+      friend ostream& operator << (ostream& out, const TileHeader& h)
+      {
+          out << h.id[0] << h.id[1] << h.id[2] << h.id[3] << " num Rows: " << h.numRows << ", tile size: " << h.size;
+          return out;
+      }
+    } __attribute__((__packed__)) TileHeader;
 
     // Do what it takes to initialize the compressed structured
@@ -224,5 +240,9 @@
 
             //skip to the beginning of the tile
-            seekg(fHeapOff+fCatalog[requestedTile][0].second);
+            seekg(fHeapOff+fCatalog[requestedTile][0].second - sizeof(TileHeader));
+            TileHeader tHead;
+            read((char*)(&tHead), sizeof(TileHeader));
+            cout << tHead << endl;
+//            seekg(fHeapOff+fCatalog[requestedTile][0].second);
             read(fCompressedBuffer.data(), sizeToRead);
 
@@ -231,4 +251,5 @@
                 fCopy.good())
             {
+                fCopy.write((char*)(&tHead), sizeof(TileHeader));
                 fCopy.write(fCompressedBuffer.data(), sizeToRead);
                 if (!fCopy)
