diff --git a/HISTORY.rst b/HISTORY.rst
index d3324bd..de80e6e 100644
--- a/HISTORY.rst
+++ b/HISTORY.rst
@@ -34,6 +34,10 @@ Fixed
 +++++
 * Deeply nested Aggregation Blocks (Object or Group) which had mis-matched Block Names
   should now properly result in LexerErrors instead of resulting in StopIteration Exceptions (Issue 100).
+* The default "Omni" parsing strategy, now considers the ASCII NULL character ("\0") a "reserved character."
+  The practical effect is that the ASCII NULL can not be in parameter names or unquoted strings (but would still
+  be successfully parsed in quoted strings). This means that PVL-text that might have incorrectly used ASCII NULLs
+  as delimiters will once again be consumed by our omnivorous parser (Issue 98).
 
 
 1.3.0 (2021-09-10)
diff --git a/pvl/grammar.py b/pvl/grammar.py
index 06eebf2..afa4e53 100755
--- a/pvl/grammar.py
+++ b/pvl/grammar.py
@@ -333,8 +333,10 @@ class OmniGrammar(PVLGrammar):
     def __init__(self):
         # Handle the fact that ISIS writes out unquoted plus signs.
         # See ISISGrammar for details.
+        # Also add the ASCII NULL ("\0") to the reserved_characters tuple.
         self.reserved_characters = tuple(
-            ISISGrammar.adjust_reserved_characters(self.reserved_characters)
+            ISISGrammar.adjust_reserved_characters(self.reserved_characters) +
+            ["\0", ]
         )
 
     def char_allowed(self, char):

diff --git a/tests/test_pvl.py b/tests/test_pvl.py
index b34d64e..5406372 100755
--- a/tests/test_pvl.py
+++ b/tests/test_pvl.py
@@ -842,6 +842,10 @@ def test_utf():
     label = pvl.load(utf_file)
     assert label["LABEL_REVISION_NOTE"] == "V1.0"
 
+    nulllabel = pvl.loads("foo=bar END\0wont=parse")
+    assert nulllabel["foo"] == "bar"
+    assert len(nulllabel) == 1
+
 
 def test_latin1():
     latin_file = os.path.join(BROKEN_DIR, "latin-1-degreesymb.pvl")

PVL Read ISIS Control network
**Describe the bug**
Unable to read an ISIS control network after upgrading to > 1.0. In the past, I have been able to pass a full ISIS control network to pvl and have it read the header off the network. The protobuf internals are outside the scope of the pvl library.

**To Reproduce**
Using the attached control network run a pvl.load(). The attached network is zipped so that GitHub will accept it as a filetype.

[test.net.zip](https://github.com/planetarypy/pvl/files/7521160/test.net.zip)

**Expected behavior**
A clear and concise description of what you expected to happen.

**Error logs or terminal captures**
```bash
Traceback (most recent call last):
  File "/Users/jlaura/miniconda3/envs/plio/lib/python3.8/site-packages/pvl/lexer.py", line 429, in lexer
    t = yield t
ValueError: Expecting an Aggregation Block, an Assignment Statement, or an End Statement, but found "14:37:20" 
```

**Your Environment (please complete the following information):**
 - OS: OS X Big Sur
 - Environment information: (e.g. Python version, etc.)
 - `pvl` Version 1.3.0

**Additional context**
I am not 100% sure that this is a PVL issue or an issue with the mocked control network. The Aggregation Block and lexor errors are opaque to me though, so I am looking for some additional guidance.

tests/test_pvl.py::test_utf
tests/test_pvl.py::test_assignment tests/test_pvl.py::test_spacing tests/test_pvl.py::test_linewrap tests/test_pvl.py::test_special tests/test_pvl.py::test_integers tests/test_pvl.py::test_floats tests/test_pvl.py::test_exponents tests/test_pvl.py::test_objects tests/test_pvl.py::test_groups tests/test_pvl.py::test_alt_group_style tests/test_pvl.py::test_binary tests/test_pvl.py::test_octal tests/test_pvl.py::test_hex tests/test_pvl.py::test_quotes tests/test_pvl.py::test_comments tests/test_pvl.py::test_dates tests/test_pvl.py::test_set tests/test_pvl.py::test_sequence tests/test_pvl.py::test_sequence_backslashes tests/test_pvl.py::test_units tests/test_pvl.py::test_delimiters tests/test_pvl.py::test_isis_output tests/test_pvl.py::test_latin1 tests/test_pvl.py::test_cube_label tests/test_pvl.py::test_cube_label_r tests/test_pvl.py::test_pds3_sample_image tests/test_pvl.py::test_load_all_sample_labels tests/test_pvl.py::test_unicode tests/test_pvl.py::test_bytes tests/test_pvl.py::test_end_comment tests/test_pvl.py::test_parse_error tests/test_pvl.py::test_broken_labels[broken1.lbl-expected0-expected_errors0] tests/test_pvl.py::test_broken_labels[broken2.lbl-expected1-expected_errors1] tests/test_pvl.py::test_broken_labels[broken3.lbl-expected2-expected_errors2] tests/test_pvl.py::test_broken_labels[broken4.lbl-expected3-expected_errors3] tests/test_pvl.py::test_broken_labels[broken5.lbl-expected4-expected_errors4] tests/test_pvl.py::test_broken_labels[broken6.lbl-expected5-expected_errors5] tests/test_pvl.py::test_broken_labels[broken7.lbl-expected6-expected_errors6] tests/test_pvl.py::test_broken_labels[broken8.lbl-expected7-expected_errors7] tests/test_pvl.py::test_broken_labels[broken9.lbl-expected8-expected_errors8] tests/test_pvl.py::test_broken_labels[broken10.lbl-expected9-expected_errors9] tests/test_pvl.py::test_broken_labels[broken11.lbl-expected10-expected_errors10] tests/test_pvl.py::test_broken_labels[broken12.lbl-expected11-expected_errors11] tests/test_pvl.py::test_broken_labels[broken13.lbl-expected12-expected_errors12] tests/test_pvl.py::test_broken_labels[broken14.lbl-expected13-expected_errors13] tests/test_pvl.py::test_broken_labels[broken15.lbl-expected14-expected_errors14] tests/test_pvl.py::test_broken_labels[broken16.lbl-expected15-expected_errors15] tests/test_pvl.py::test_broken_labels_LexerError[broken1.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken3.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken4.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken5.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken6.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken7.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken8.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken9.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken10.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken11.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken12.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken13.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken14.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken15.lbl] tests/test_pvl.py::test_broken_labels_LexerError[broken16.lbl] tests/test_pvl.py::test_broken_labels_LexerError[latin-1-degreesymb.pvl] tests/test_pvl.py::test_broken_labels_ParseError tests/test_pvl.py::test_EmptyValueAtLine tests/test_pvl.py::test_load_all_bad_sample_labels tests/test_pvl.py::test_dump_stream tests/test_pvl.py::test_dump_to_file tests/test_pvl.py::test_default_encoder tests/test_pvl.py::test_pds_encoder tests/test_pvl.py::test_special_values tests/test_pvl.py::test_special_strings tests/test_pvl.py::test_unkown_value tests/test_pvl.py::test_quoated_strings tests/test_pvl.py::test_dump_to_file_insert_before tests/test_pvl.py::test_dump_to_file_insert_after