A method of soft output multiple-input-multiple-output (MIMO) decoding in a MIMO system to find the most likely transmit signal vector from a received signal vector wherein the output of the decoder is log likelihood ratio "LLR" per bit of the transmitted signal comprising a signal transmitted by each transmit antenna, the method comprising: generating a tree-graph comprising a plurality of nodes at different levels with parent and child nodes connected via branches, wherein: the nodes comprise a single parent root node, a plurality of leaf nodes, and a plurality of other nodes (204,209); the number of levels, M, in the tree graph is equal to a number of different transmit antennae in a MIMO system; each level relates to a corresponding transmit vector element; the parent root node is at the level M-1 and each node in an ith level of the tree graph splits into the same number of child nodes in the i-1th level of the tree graph; the number of child nodes for each node is equal to the number of possible candidate values of a modulation scheme employed to transmit information in the signal transmitted by the i-1th antenna; and each child node in the i-1th level of the tree graph associated to a particular node in an ith level of the tree graph corresponds to a different candidate value of the transmit vector element corresponding to the i-1th level; searching the tree graph (200,214) to determine for each level the node representing the most likely candidate value of the transmit vector, wherein the searching comprises performing sphere decoding to limit the search to a subset of nodes (203,204,209) that have an accumulated distance from the root node within a radius r corresponding to full and partial paths from the root node towards a leaf node; storing and managing and updating tables of path metrics used to produce LLR values in which the number of entries in each table equals the number of bits to be decoded; characterized in that the search further comprises, for each partial path determined by the sphere radius, estimating the remaining path metric based on a specified prediction scheme; and using the estimated metric in the updating of table entries of the bits of the transmitted symbol. generating a tree-graph comprising a plurality of nodes at different levels with parent and child nodes connected via branches, wherein: the nodes comprise a single parent root node, a plurality of leaf nodes, and a plurality of other nodes (204,209); the number of levels, M, in the tree graph is equal to a number of different transmit antennae in a MIMO system; each level relates to a corresponding transmit vector element; the parent root node is at the level M-1 and each node in an ith level of the tree graph splits into the same number of child nodes in the i-1th level of the tree graph; the number of child nodes for each node is equal to the number of possible candidate values of a modulation scheme employed to transmit information in the signal transmitted by the i-1th antenna; and each child node in the i-1th level of the tree graph associated to a particular node in an ith level of the tree graph corresponds to a different candidate value of the transmit vector element corresponding to the i-1th level; the nodes comprise a single parent root node, a plurality of leaf nodes, and a plurality of other nodes (204,209); the number of levels, M, in the tree graph is equal to a number of different transmit antennae in a MIMO system; each level relates to a corresponding transmit vector element; the parent root node is at the level M-1 and each node in an ith level of the tree graph splits into the same number of child nodes in the i-1th level of the tree graph; the number of child nodes for each node is equal to the number of possible candidate values of a modulation scheme employed to transmit information in the signal transmitted by the i-1th antenna; and each child node in the i-1th level of the tree graph associated to a particular node in an ith level of the tree graph corresponds to a different candidate value of the transmit vector element corresponding to the i-1th level; searching the tree graph (200,214) to determine for each level the node representing the most likely candidate value of the transmit vector, wherein the searching comprises performing sphere decoding to limit the search to a subset of nodes (203,204,209) that have an accumulated distance from the root node within a radius r corresponding to full and partial paths from the root node towards a leaf node; storing and managing and updating tables of path metrics used to produce LLR values in which the number of entries in each table equals the number of bits to be decoded; characterized in that the search further comprises, for each partial path determined by the sphere radius, estimating the remaining path metric based on a specified prediction scheme; and using the estimated metric in the updating of table entries of the bits of the transmitted symbol.