The capacitated dynamic lot sizing problem with product returns in a closed remanufacturing system is addressed in this paper. The system is designed to satisfy the demands of different classes of single level products by remanufacturing end-life returned products. A single machine with a limited capacity in each time period is used to perform the remanufacturing operations. A mathematical programming formulation is proposed for the considered problem: the proposed model minimizes the sum of remanufacturing costs over a finite planning horizon. The problem is a generalized version of the classical capacitated dynamic lot sizing problem, and thus it is NP-hard itself. Therefore, a simulated annealing algorithm, with an efficient neighborhood generation which takes into account the constraints of the problem, is proposed as a solution approach. To evaluate the efficiency of the proposed algorithm, a set of experimental instances are generated and solved. The comparison between the results obtained with the proposed simulated annealing approach and the ones generated by the CPLEX solver shows the effectiveness of the proposed algorithm.