Index: trunk/Mars/mcorsika/MCorsikaFormat.cc
===================================================================
--- trunk/Mars/mcorsika/MCorsikaFormat.cc	(revision 10165)
+++ trunk/Mars/mcorsika/MCorsikaFormat.cc	(revision 10213)
@@ -108,5 +108,5 @@
 // header of the block. As the event block has no header it is located    
 // at the beginning of this block, which is as the beginning of the data  
-Bool_t MCorsikaFormatRaw::NextBlock(Bool_t  subBlock,
+Bool_t MCorsikaFormatRaw::NextBlock(Int_t   readState,
                                     Int_t & blockType, 
                                     Int_t & blockVersion,
@@ -114,4 +114,5 @@
                                     Int_t & blockLength) const
 {
+
     int blockHeader;
     fIn->read((char*)&blockHeader, 4);
@@ -123,5 +124,4 @@
     blockLength     = 272 * 4;
 
-
     switch(blockHeader)
       {
@@ -133,5 +133,12 @@
          break;
       case 1213486661 : // EVTH
-         blockType = 1202;
+         if (readState != 10)
+            blockType = 1202;
+         else
+            {
+            blockType = 1105;
+            fIn->seekg(-4, ios::cur);
+            blockLength += 4;
+            }
          break;
       case 1163155013 : // EVTE
@@ -169,5 +176,5 @@
 ///////////////////////////////////////////////////////////////////////////////
 
-Bool_t MCorsikaFormatEventIO::NextBlock(Bool_t  subBlock,
+Bool_t MCorsikaFormatEventIO::NextBlock(Int_t   readState,
                                         Int_t & blockType, 
                                         Int_t & blockVersion,
@@ -182,6 +189,8 @@
 //         - id (first 4 bytes of data field)
 
-   if (subBlock)
+   if (readState == 4)
+//   if (subBlock)
       {
+      // this is a sub-block
       int blockHeader[3];
       fIn->read((char*)blockHeader, 3 * sizeof(int));
Index: trunk/Mars/mcorsika/MCorsikaFormat.h
===================================================================
--- trunk/Mars/mcorsika/MCorsikaFormat.h	(revision 10165)
+++ trunk/Mars/mcorsika/MCorsikaFormat.h	(revision 10213)
@@ -25,5 +25,5 @@
    virtual ~MCorsikaFormat();
 
-   virtual Bool_t NextBlock(Bool_t  subBlock, Int_t & blockType, Int_t & blockVersion,
+   virtual Bool_t NextBlock(Int_t   readState, Int_t & blockType, Int_t & blockVersion,
                             Int_t & blockIdentifier, Int_t & blockLength) const = 0;
 
@@ -50,5 +50,5 @@
         : MCorsikaFormat(in) {}
 
-   Bool_t NextBlock(Bool_t  subBlock, Int_t & blockType, Int_t & blockVersion,
+   Bool_t NextBlock(Int_t   readState, Int_t & blockType, Int_t & blockVersion,
                     Int_t & blockIdentifier, Int_t & blockLength) const;
 
@@ -67,5 +67,5 @@
 
 
-    Bool_t NextBlock(Bool_t  subBlock, Int_t & blockType, Int_t & blockVersion,
+    Bool_t NextBlock(Int_t   readState, Int_t & blockType, Int_t & blockVersion,
                      Int_t & blockIdentifier, Int_t & blockLength) const;
 
Index: trunk/Mars/mcorsika/MCorsikaRead.cc
===================================================================
--- trunk/Mars/mcorsika/MCorsikaRead.cc	(revision 10165)
+++ trunk/Mars/mcorsika/MCorsikaRead.cc	(revision 10213)
@@ -276,5 +276,5 @@
             Int_t blockType, blockVersion, blockIdentifier, blockLength;
             while (status && 
-                   fInFormat->NextBlock(fReadState == 4, blockType, blockVersion, 
+                   fInFormat->NextBlock(fReadState/* == 4*/, blockType, blockVersion, 
                               blockIdentifier, blockLength))
                {
@@ -385,13 +385,13 @@
 Int_t MCorsikaRead::ReadNextBlockHeader()
 {
-   if (fInFormat->NextBlock(fReadState == 4, fBlockType, fBlockVersion, 
+   if (fInFormat->NextBlock(fReadState/* == 4*/, fBlockType, fBlockVersion, 
                             fBlockIdentifier, fBlockLength)               == kFALSE)
       // end of file
       return kFALSE;
-
-//    gLog << "Next fBlock:  type=" << fBlockType << " version=" << fBlockVersion;
-//    gLog << " identifier=" << fBlockIdentifier << " length=" << fBlockLength; 
-//    gLog << " readState= " << fReadState << endl;
-   
+/*
+    gLog << "Next fBlock:  type=" << fBlockType << " version=" << fBlockVersion;
+    gLog << " identifier=" << fBlockIdentifier << " length=" << fBlockLength; 
+    gLog << " readState= " << fReadState << endl;
+*/   
    if (fReadState == 3 && fBlockType != 1210)
       // fReadState == 3    means we have read the event end 
