Ok, so your changes fix already failing tests.
For me writing parsers is a task, when test-driven-development can be applied with great success.
The idea is simple:
1. first write a test that fails
2. then write the code to fix the failure.
3. repeat 1
Always make sure that no change is made if there is not test for it.
And of course make sure that after a change is made all test pass.
Doing this prevents introducing changes that break already working cases/features.
p.s. CC code is one place of C::B I have no intention to dig in and make myself familiar with, so I cannot comment if the changes you're making are good
p.p.s. This is the reason I'm asking you to add tests. It is an easy way to check if everything is working