In many underground mines, haulage vehicles carry ore from underground loading stations to the surface. Vehicles travel in narrow tunnels with occasional passing bays that allow descending empty vehicles to pull off the main path and wait for ascending laden vehicles to pass. The number of passing bays and their locations influence the delays to descending vehicles, and hence the haulage productivity of the mine. We formulate and solve a mixed integer programming (MIP) model to determine the optimal locations of passing bays to maximise haulage productivity for given numbers of vehicles and passing bays. The MIP also generates the corresponding vehicle schedule. Previous studies have only examined the placement of equally spaced bays. The results obtained from the MIP show that this is not always optimal. Furthermore, we observe that the best locations of passing bays are those that allow interleaving of vehicles without delays at bays.