Recently, Turbo Codes have drawn much attention due to its remarkable error correcting capability in digital communication systems. However, its high decoding complexity and potential poor frame error rate (FER) are major problems in practical implementation. In this paper, we present two algorithms for reducing the decoding complexity and the FER of Turbo Codes. Specifically, an adaptive iteration decoding algorithm is proposed by making use of Cyclic Redundancy Check (CRC) bits for reducing the decoding complexity of turbo codes. In addition, a serial concatenated coding system is used to lower the FER of turbo codes. The simulation results will demonstrate that a lower decoding complexity and a lower FER can be obtained by using the two proposed methods.