In the petrol station replenishment problem (PSRP), the aim is to deliver petroleum products to petrol stations by means of an unlimited heterogeneous fleet of compartmented tank trucks. The problem consists of jointly determining quantities to deliver within a given interval, of allocating products to tank truck compartments and of designing delivery routes to stations. This article describes an exact algorithm which decomposes the PSRP into a truck loading problem and a routing problem. An algorithm which makes use of assignment, optimality tests and possibly standard ILP algorithm is proposed to solve the loading problem. The routing problem is handled using two different strategies, based either on a matching approach or on a column generation scheme. This algorithm was extensively tested on randomly generated data and on a real-life case arising in Eastern Quebec.