diff --git a/pub/src/file_io.cpp b/pub/src/file_io.cpp
index 3d32c551f20c4b193b390ae6956604b5aedfd90a..7a79f36186b1d4bbb338cd50b2c291859847d91f 100644
--- a/pub/src/file_io.cpp
+++ b/pub/src/file_io.cpp
@@ -349,25 +349,17 @@ void NFileIO::Load_96( FILE *F_in, string flong )
     if( lin.substr(0,3)!=string("dir") )
         throw string( "tag 'dir' not found in block 2" );
 
-    if( mystd::freadln(F_in, &lin)<=0 || lin.length()<6 || 
-        lin.substr(0,6)!=string("&eob 2") )
-        throw string( "no valid eob 2" );
+    while ( mystd::freadln(F_in, &lin)>0 &&
+            !( lin.length()>=6 &&
+               lin.substr(0,6)==string("&eob 2") ) )
+        ;
+    
+    if ( mystd::freadln(F_in, &lin)<=0 )
+        throw string( "missed &eob 3" );
 
-    if( mystd::freadln(F_in, &lin)<=0 || lin.length()<9 || 
-        lin.substr(0,9)!=string("(a24,i16)") )
+    if( lin.length()<9 || lin.substr(0,9)!=string("(a24,i16)") )
         throw string( "no valid intro to block 3" );
 
-    if( mystd::freadln(F_in, &lin)<=0 || lin.length()<24 || 
-        lin.substr(0,3)!=string("?cu") )
-        throw string( "entry ?cu not found in block 3" );
-    // if( lin.substr(24,1)!=string("0") )
-    //     throw BadData( "invalid ?cu value" );
-    // do not check cu=0, because a24 is not respected
-
-    if( mystd::freadln(F_in, &lin)<=0 || lin.length()<24 || 
-        lin.substr(0,6)!=string("@fixed") )
-        throw string( "entry '@fixed' not found in block 3" );
-
     while ( mystd::freadln(F_in, &lin)>0 &&
             !( lin.length()>=6 &&
                lin.substr(0,6)==string("&eob 3") ) )