See gogo/protobuf#46 which was my stab at fixing the bug. It's not clear that my change will be accepted as it has flaws (e.g. causes the behavior of the reflect-based marshal/unmarshal to differ from generated marshal/unmarshal). I think we should stop using customtype with non-byte wire-types.