diff --git a/src/header/stdio/lookaheadreader.rs b/src/header/stdio/lookaheadreader.rs
index 91092f5af531c3824fe156938b67a804103e0ed8..7b7495b0c795b2d6dde27faa11d521be3b99e944 100644
--- a/src/header/stdio/lookaheadreader.rs
+++ b/src/header/stdio/lookaheadreader.rs
@@ -8,8 +8,12 @@ struct LookAheadBuffer {
 impl LookAheadBuffer {
     fn look_ahead(&mut self) -> Result<Option<u8>, i32> {
         let byte = unsafe { *self.buf.offset(self.look_ahead) };
-        self.look_ahead += 1;
-        Ok(Some(byte))
+        if byte == 0 {
+            Ok(None)
+        } else {
+            self.look_ahead += 1;
+            Ok(Some(byte))
+        }
     }
 
     fn commit(&mut self) {