The classical Feferman-Vaught Theorem for First Order Logic explains how to compute the truth value of a ÿrst order sentence in a generalized product of ÿrst order structures by reducing this computation to the computation of truth values of other ÿrst order sentences in the factors and evaluation of a monadic second order sentence in the index structure. This technique was later extended by L auchli, Shelah and Gurevich to monadic second order logic. The technique has wide applications in decidability and deÿnability theory.Here we give a uniÿed presentation, including some new results, of how to use the FefermanVaught Theorem, and some new variations thereof, algorithmically in the case of Monadic Second Order Logic MSOL.We then extend the technique to graph polynomials where the range of the summation of the monomials is deÿnable in MSOL. Here the Feferman-Vaught Theorem for these polynomials generalizes well known splitting theorems for graph polynomials. Again, these can be used algorithmically.Finally, we discuss extensions of MSOL for which the Feferman-Vaught Theorem holds as well. (J.A. Makowsky).1 At the occasion of his 75th birthday. It is also a tribute to Feferman's work in model theory, which went seemingly unnoticed at the celebrations of his 70th birthday. Feferman returned several times to topics related to the preservation of truth under various model theoretic constructions, so in [54][55][56][57][58]60]. The FefermanVaught Theorem can also be viewed as falling into this category.