The "catch all" is -1, not < 0.

in v2, the attributes are still signed
Fix typo.
Note recent changes
Fix typo (we don't want to fork twice)
Add missing pipe