A convolutionally coded multiple-input multiple-output system equipped with CRC error detection is considered. For each convolutional code, the list Viterbi algorithm (LVA) is employed to find a list of promising codewords. CRC code is used not only to select a correct one from this list; but also to control the switching between hard-decision feedback and soft interference cancellation. Further, bit-level soft information is generated with low complexity, albeit approximately, using the same codeword list returned by LVA. Simulations confirm that this hybrid hard/soft interference cancellation scheme achieves enhanced error performance relative to existing hard-decision approaches at a comparable complexity.