  Given a code from a shift space to an irreducible sofic shift, any two of the
following three conditions -- open, constant-to-one, (right or left) closing --
imply the third. If the range is not sofic, then the same result holds when
bi-closingness replaces closingness. Properties of open mappings between shift
spaces are investigated in detail. In particular, we show that a closing open
(or constant-to-one) extension preserves the structure of a sofic shift.
