In this paper, we present a symbol-level iterative source-channel decoding algorithm for variable-length codes (VLCs). First a soft-input source decoder for VLC-encoded data is derived by modification of the BCJR forward-backward recursion and adaptation to the nonstationary VLC trellis. Also proposed is a recursive implementation based on sectionalized code trellises for MAP symbol decoding of binary convolutional codes. This allows to use a merged trellis representation for a VLC and a convolutional channel code and exploit the residual source redundancies as a priori information on a code trellis. Simulation results indicate that the proposed iterative decoder allows to exchange between its constituent decoders the symbol-level extrinsic information and achieves high robustness against channel noises.