Index: trunk/Mars/mcore/FITS.h
===================================================================
--- trunk/Mars/mcore/FITS.h	(revision 19283)
+++ trunk/Mars/mcore/FITS.h	(revision 19284)
@@ -131,5 +131,10 @@
         char          ordering;
         unsigned char numProcs;
-        uint16_t      processings[];
+        // This looks like a nice solution but always created problems
+        // with the root dictionary because the dictionary generator
+        // generates invalid code for some compilers.
+        // As it is used only while reading, and only in one place
+        // I replaced that by a direct cast.
+        // uint16_t      processings[];
 
         BlockHeader(uint64_t      s=0,
Index: trunk/Mars/mcore/zfits.h
===================================================================
--- trunk/Mars/mcore/zfits.h	(revision 19283)
+++ trunk/Mars/mcore/zfits.h	(revision 19284)
@@ -518,4 +518,5 @@
 
             const FITS::BlockHeader* head = reinterpret_cast<FITS::BlockHeader*>(&fCompressedBuffer[compressedOffset]);
+            const uint16_t *processings = reinterpret_cast<const uint16_t*>(reinterpret_cast<const char*>(head)+sizeof(FITS::BlockHeader));
 
             fColumnOrdering[i] = head->ordering;
@@ -530,5 +531,5 @@
                 uint32_t sizeWritten=0;
 
-                switch (head->processings[j])
+                switch (processings[j])
                 {
                 case FITS::kFactRaw:
