The book starts with a brief introduction by the editors. They outline how the discovery of biological processes such as alternative splicing and lateral gene transfer have changed our view of evolution and how this has led to very complex models of evolutionary processes in biology. The editors emphasize that a better understanding of these processes is of great value for solving problems such as the prediction of protein function from genomic sequences or biodiversity conservation planning.

The first two chapters are grouped together under the headline *Evolution in Populations*. Chapter 1, by J. Felsenstein, first reviews the basic concept of *coalescents*, that is, trees that describe the ancestral relationship between copies of genes formed in populations. Next, to obtain a more realistic model, the effects of population growth, migration, recombination and natural selection are taken into account. Then, inference methods based on the model are reviewed and at the end of Chapter 1 the reader can find a list of available coalescent programmes. Chapter 2, by A. Rodrigo et al., is centered around the concept of *measurably evolving populations*, that is, populations for which sequence data is obtained over time and a significant accumulation of substitutions is found. The authors review methods for constructing evolutionary trees and estimating quantities such as substitution rate, population size and migration rate under these circumstances.

Chapters 3 and 4 are dedicated to *Models of Sequence Evolution*. The first part of Chapter 3, by O. Gascuel and S. Guindon, addresses the issue of *variability* of sequence evolution, and the reader can find an extensive overview of existing models that take this variability into account. In the second part of the chapter, two data sets are used to illustrate how these models can be employed to analyze sequence data. In Chapter 4, by E. S. Allman and J. A. Rhodes, the concept of *phylogenetic invariants* is reviewed. The authors provide the reader with the necessary basic terminology from algebraic geometry and then explain how such invariants can be found and how they can help to better understand models of sequence evolution.

Chapters 5 and 6, *Tree Shape, Speciation, and Extinction*, focus on how to model diversification and assess biodiversity. In Chapter 5, by A. O. Mooers et al., several models are discussed for generating trees. The goal is to generate trees whose shape is similar to that of evolutionary trees constructed from real biological data and, thereby, to better understand the processes that lead to the patterns found in those trees. Chapter 6, by K. Hartmann and M. Steel, reviews a measure used in conservation planning called *phylogenetic diversity* (PD). After presenting some of the mathematical properties of this measure it is compared to other measures of biodiversity and issues like the time scale for planning or budgetary constraints are discussed. The chapter concludes with some statistical properties of PD and its application in the reconstruction of evolutionary trees.

Chapters 7 and 8 are devoted to problems arising in the context of the reconstruction of *Trees from Subtrees and Characters*. In Chapter 7, by M. J. Sanderson et al., the problem of *fragmentation* of the data in large scale phylogenetic analysis as addressed and strategies to deal with this problem are discussed. The problems studied in Chapter 8, by S. Grünewald and K. T. Huber, arise from the question: When does a data set support an evolutionary history that is tree-like? After formalizing this question, a collection of well known and also more recent combinatorial results that answer this question is reviewed, including characterizations of phylogenetic trees in terms of chordal graphs and closure rules.

The last two chapters, *From Trees to Networks*, are motivated by the fact that the evolutionary history of some sets of taxa is better represented by a network rather than a tree. Chapter 9, by D. Huson, first gives a short overview of which types of networks are currently used to represent biological data. Then several methods for computing such networks are reviewed. In Chapter 8, by C. Semple, the basic problem is to find a network that can explain the biological data involving a minimum number of hybridization events. A characterization of such networks as well as the connection to several related optimization problems along with their computational complexity is discussed.