Index: trunk/Mars/mcore/zfits.h
===================================================================
--- trunk/Mars/mcore/zfits.h	(revision 17685)
+++ trunk/Mars/mcore/zfits.h	(revision 17743)
@@ -409,5 +409,6 @@
             // uncompress  the buffer
             const uint32_t thisRoundNumRows = (GetNumRows()<fCurrentRow + fNumRowsPerTile) ? GetNumRows()%fNumRowsPerTile : fNumRowsPerTile;
-            UncompressBuffer(offsets, thisRoundNumRows, offset+sizeof(FITS::TileHeader));
+            if (!UncompressBuffer(offsets, thisRoundNumRows, offset+sizeof(FITS::TileHeader)))
+                return false;
 
             // pointer to column (source buffer)
@@ -444,11 +445,13 @@
                 default:
                     clear(rdstate()|std::ios::badbit);
+
+                    std::ostringstream str;
+                    str << "Unkown column ordering scheme found (i=" << i << ", " << fColumnOrdering[i] << ")";
 #ifdef __EXCEPTIONS
-                    throw std::runtime_error("Unkown column ordering scheme found");
+                    throw std::runtime_error(str);
 #else
-                    gLog << ___err___ << "ERROR - unkown column ordering scheme" << std::endl;
+                    gLog << ___err___ << "ERROR - " << str.str() << std::endl;
                     return false;
 #endif
-                    break;
                 };
             }
@@ -508,5 +511,5 @@
 
     // Data has been read from disk. Uncompress it !
-    void UncompressBuffer(const std::vector<size_t> &offsets,
+    bool UncompressBuffer(const std::vector<size_t> &offsets,
                           const uint32_t &thisRoundNumRows,
                           const uint32_t offset)
@@ -555,10 +558,10 @@
 
                     std::ostringstream str;
-                    str << "Unkown processing applied to data. Col " << i << " proc " << j << " out of " << (int)head->numProcs;
+                    str << "Unknown processing applied to data (col=" << i << ", proc=" << j << "/" << (int)head->numProcs;
 #ifdef __EXCEPTIONS
                     throw std::runtime_error(str.str());
 #else
-                    gLog << ___err___ << "ERROR - Unknown processing applied to data. Aborting" << std::endl;
-                    return;
+                    gLog << ___err___ << "ERROR - " << str.str() << std::endl;
+                    return false;
 #endif
                 }
@@ -568,4 +571,6 @@
             }
         }
+
+        return true;
     }
 
