Paul Battley wrote:

>       return broken_unpack(spec.tr('nvNV', 'vnVN'))

tr never occurred to me. That's perfect!