The logic for !hit is far too widely distributed. This makes fixing #58336 difficult. Before tackling that bug, first kill _parseHitString, the worst offender.
Merged fix to trunk. See commit messages for details.
Bug watches keep track of this bug in other bug trackers.
Merged fix to trunk. See commit messages for details.