Program transformation systems are applied both in program synthesis and in program optimization. For logic programs the ``logic'' component makes transformations very natural and easy to be studied formally. But, when we move to Prolog programs, the ``control'' component cannot be ignored. In particular we need to cope with termination properties which are essential for ensuring the reachability of solutions for a given query. We give an overview of the main proposals in the field of transformation systems for logic programs and we emphasize how they cope with those properties of logic programs which are not strictly declarative. We focus in particular on how the transformation can affect the termination of a program