This is a book about graph homomorphisms. Graph theory is now an established discipline but the study of graph homomorphisms has only recently begun to gain wide acceptance and interest. The subject gives a useful perspective in areas such as graph reconstruction, products, fractional and circular colourings, and has applications in complexity theory, artificial intelligence, telecommunication, and, most recently, statistical physics. Based on the authors' lecture notes for graduate courses, this book can be used as a textbook for a second course in graph theory at 4th year or master's level and has been used for courses at Simon Fraser University (Vancouver), Charles University (Prague), ETH (Zurich), and UFRJ (Rio de Janeiro). The exercises vary in difficulty. The first few are usually intended to give the reader an opportunity to practice the concepts introduced in the chapter; the later ones explore related concepts, or even introduce new ones. For the harder exercises hints and references are provided. The authors are well known for their research in this area and the book will be invaluable to graduate students and researchers alike.