In this article we focus on the problem of channel decoding in presence of a-priori information. In particular, assuming that the a-priori information reliability is not perfectly estimated at the receiver, we derive a novel analytical framework for evaluating the decoder's performance. It is derived the important result that a "good code", i.e., a code which allows to fully exploit the potential benefit of a-priori information, must associate information sequences with high Hamming weights to codewords with low Hamming weights. Basing on the proposed analysis, we analyze the performance of convolutional codes, random codes, and turbo codes. Moreover, we consider the transmission of correlated binary sources from independent nodes, a problem which has several practical applications, e.g. in the case of sensor networks. In this context, we propose a very simple joint source-channel turbo decoding scheme where each decoder works by exploiting a-priori information given by the other decoder. In the case of block fading channels, it is shown that the inherent correlation between information signals provide a form of non-cooperative diversity, thus allowing joint source-channel decoding to outperform separation-based schemes.