A communication system (100,200) comprising: a plurality of transmit sources (214,216) operable to transmit a plurality of symbols over a plurality of channels; a detector (1 12; 112a) operable to: receive symbols corresponding to said transmitted symbols; process said received symbols to obtain initial estimates of said transmitted symbols; use said initial estimates to generate a reduced search set, wherein said reduced search set is obtained by finding a predetermined number of closest constellation points corresponding to each estimated transmitted symbol, thereby defining a reduced search set for a transmit symbol vector, said transmit symbol vector comprising said transmitted symbols; and use said reduced search set to generate decisions for detecting said transmitted symbols, comprising: searching over the reduced search set for a candidate transmit symbol vector that minimizes || y - Hx || 2, and deriving metrics for each bit value of said candidate transmit symbol vector that is not part of a bit representation of said candidate transmit symbol vector. a plurality of transmit sources (214,216) operable to transmit a plurality of symbols over a plurality of channels; a detector (1 12; 112a) operable to: receive symbols corresponding to said transmitted symbols; process said received symbols to obtain initial estimates of said transmitted symbols; use said initial estimates to generate a reduced search set, wherein said reduced search set is obtained by finding a predetermined number of closest constellation points corresponding to each estimated transmitted symbol, thereby defining a reduced search set for a transmit symbol vector, said transmit symbol vector comprising said transmitted symbols; and use said reduced search set to generate decisions for detecting said transmitted symbols, comprising: searching over the reduced search set for a candidate transmit symbol vector that minimizes || y - Hx || 2, and deriving metrics for each bit value of said candidate transmit symbol vector that is not part of a bit representation of said candidate transmit symbol vector. receive symbols corresponding to said transmitted symbols; process said received symbols to obtain initial estimates of said transmitted symbols; use said initial estimates to generate a reduced search set, wherein said reduced search set is obtained by finding a predetermined number of closest constellation points corresponding to each estimated transmitted symbol, thereby defining a reduced search set for a transmit symbol vector, said transmit symbol vector comprising said transmitted symbols; and use said reduced search set to generate decisions for detecting said transmitted symbols, comprising: searching over the reduced search set for a candidate transmit symbol vector that minimizes || y - Hx || 2, and deriving metrics for each bit value of said candidate transmit symbol vector that is not part of a bit representation of said candidate transmit symbol vector. searching over the reduced search set for a candidate transmit symbol vector that minimizes || y - Hx || 2, and deriving metrics for each bit value of said candidate transmit symbol vector that is not part of a bit representation of said candidate transmit symbol vector.