Abstract. Block codes are first viewed as finite state automata represented as trellises. A technique termed subtrellis overlaying is introduced with the object of reducing decoder complexity. Necessary and sufficient conditions for subtrellis overlaying are next derived from the representation of the block code as a group, partitioned into a subgroup and its cosets. Finally a view of the code as a graph permits a combination of two shortest path algorithms to facilitate efficient decoding on an overlayed trellis.