A method for use in a decoder to decode a sequence of bits or symbols corresponding to a plurality of received interfering user signals, hereinafter also referred as transmitters, that are corrupted by inter-symbol interference and by other interference, to identify the value of the bits or symbols for each of the plurality of received interfering signals during each symbol interval for each of the plurality of received interfering signals, and the decoding method is carried out via a search using a multi-user tree decoder that has a number of levels equal to the number of the plurality of received interfering signals, wherein the tree decoder has a plurality of nodes at each level corresponding to the possible values taken of a bit or symbol, and the tree decoder comprises a root node, intermediate nodes and leaf nodes, and branches connect the root node and intermediate nodes to all nodes at the next higher level, and subsequent decoding is done by single user decoders using output from the multi-user tree decoder, and wherein a parameter estimator provides information about each of the plurality of received interfering signals, the received interfering user signals being received in blocks of data, the method comprising the steps of: a) determining the received signal strength of each transmitter at the beginning of each symbol interval using information from the parameter estimator; b) assigning the transmitter corresponding to the one of the plurality of received interfering signals determined to have the highest signal strength at the beginning of each symbol interval to the first level of the tree decoder - adjacent the root node for decoding, and there are multiple iterations of decoding during each symbol interval; c) decoding the received interfering user signals from each transmitter in the multi-user tree decoder to determine symbol estimates for each bit or symbol during each symbol interval of each of the received interfering user signals for a first of multiple iterations of decoding; (d) decoding the plurality of received interfering signals from the each transmitter in a single user decoder using the symbol estimates determined in step (c) to determine probability estimates for each of the bits and symbols in each of the plurality of received interfering signals for the first iteration of decoding; (e) repeating steps (c) and (d) for subsequent iterations of multiple iterations of decoding during each symbol interval, with the probability estimates determined in step (d) for one iteration of decoding being used in the multi-user tree decoder in step (c) for a subsequent iteration of decoding; and (f) making a determination of the value of each symbol or bit in each of the plurality of received interfering signals for each symbol interval using the probability estimates after a number of the subsequent iterations of decoding in step (e) have been performed during each symbol interval. a) determining the received signal strength of each transmitter at the beginning of each symbol interval using information from the parameter estimator; b) assigning the transmitter corresponding to the one of the plurality of received interfering signals determined to have the highest signal strength at the beginning of each symbol interval to the first level of the tree decoder - adjacent the root node for decoding, and there are multiple iterations of decoding during each symbol interval; c) decoding the received interfering user signals from each transmitter in the multi-user tree decoder to determine symbol estimates for each bit or symbol during each symbol interval of each of the received interfering user signals for a first of multiple iterations of decoding; (d) decoding the plurality of received interfering signals from the each transmitter in a single user decoder using the symbol estimates determined in step (c) to determine probability estimates for each of the bits and symbols in each of the plurality of received interfering signals for the first iteration of decoding; (e) repeating steps (c) and (d) for subsequent iterations of multiple iterations of decoding during each symbol interval, with the probability estimates determined in step (d) for one iteration of decoding being used in the multi-user tree decoder in step (c) for a subsequent iteration of decoding; and (f) making a determination of the value of each symbol or bit in each of the plurality of received interfering signals for each symbol interval using the probability estimates after a number of the subsequent iterations of decoding in step (e) have been performed during each symbol interval.