  We study a form of unequal error protection that we term "unequal message
protection" (UMP). The message set of a UMP code is a union of $m$ disjoint
message classes. Each class has its own error protection requirement, with some
classes needing better error protection than others. We analyze the tradeoff
between rates of message classes and the levels of error protection of these
codes. We demonstrate that there is a clear performance loss compared to
homogeneous (classical) codes with equivalent parameters. This is in sharp
contrast to previous literature that considers UMP codes. To obtain our results
we generalize finite block length achievability and converse bounds due to
Polyanskiy-Poor-Verd\'{u}. We evaluate our bounds for the binary symmetric and
binary erasure channels, and analyze the asymptotic characteristic of the
bounds in the fixed error and moderate deviations regimes. In addition, we
consider two questions related to the practical construction of UMP codes.
First, we study a "header" construction that prefixes the message class into a
header followed by data protection using a standard homogeneous code. We show
that, in general, this construction is not optimal at finite block lengths. We
further demonstrate that our main UMP achievability bound can be obtained using
coset codes, which suggests a path to implementation of tractable UMP codes.
