A branch and bound algorithm is presented for the resource-constrained project scheduling problem. Given are n activities which have to be processed without preemptions. During the processing period of an activity constant amounts of renewable resources are needed where the available capacity of each resource type is limited. Furthermore, finish–start precedence relations between the activities are given. The objective is to determine a schedule with minimal makespan. The branching scheme starts from a graph representing a set of conjunctions (the classical finish–start precedence constraints) and disjunctions (induced by the resource constraints). Then it either introduces disjunctive constraints between pairs of activities or places these activities in parallel. Concepts of immediate selection are developed in connection with this branching scheme. Immediate selection allows us to add conjunctions as well as further disjunctions and parallelity relations. Computational results based on the test data of Kolisch et al. and Kolisch and Sprecher are reported.