A method for controlling a fuel pump assembly comprising a plurality of pump elements for delivering fuel at high pressure to a rail volume, each of the pump elements comprising a plunger which is driven by an associated cam to perform at least one pumping event per engine revolution and a control valve for controlling fuel flow into and/or out of the pump chamber, each pumping event corresponding to an associated cam lobe of the associated cam, the method comprising, for each pumping event of each pump element, controlling the control valve of said pump element in response to an output control signal (52a-52f, 114) derived from at least one previous pumping event; wherein the output control signal (52a-52f, 114) is derived by: measuring fuel pressure within the rail volume to derive a measured rail pressure value; comparing the measured rail pressure value with a demanded rail pressure value to derive a rail pressure error; performing a proportional and integral calculation on the rail pressure error to derive a proportional term for the rail pressure error and an integral term for the rail pressure error; and combining the proportional term and the integral term to derive the output control signal (52a-52f, 114), wherein the integral term of the rail pressure error is the cumulative integral term derived from a plurality of recent pumping events for the associated cam lobe of the associated pump element, and further characterised in: monitoring the integral term of the rail pressure error corresponding to each cam lobe of each pump element to identify the presence of a fault condition, said monitoring comprising; and comparing the integral term of the rail pressure error of a first one of the cam lobes of a pump element with the integral term of the rail pressure error for the or each of the other cam lobes of the same pump element; and, on the basis of the comparison, identifying the nature of the fault condition. measuring fuel pressure within the rail volume to derive a measured rail pressure value; comparing the measured rail pressure value with a demanded rail pressure value to derive a rail pressure error; performing a proportional and integral calculation on the rail pressure error to derive a proportional term for the rail pressure error and an integral term for the rail pressure error; and combining the proportional term and the integral term to derive the output control signal (52a-52f, 114), wherein the integral term of the rail pressure error is the cumulative integral term derived from a plurality of recent pumping events for the associated cam lobe of the associated pump element, and further characterised in: monitoring the integral term of the rail pressure error corresponding to each cam lobe of each pump element to identify the presence of a fault condition, said monitoring comprising; and comparing the integral term of the rail pressure error of a first one of the cam lobes of a pump element with the integral term of the rail pressure error for the or each of the other cam lobes of the same pump element; and, on the basis of the comparison, identifying the nature of the fault condition. monitoring the integral term of the rail pressure error corresponding to each cam lobe of each pump element to identify the presence of a fault condition, said monitoring comprising; and comparing the integral term of the rail pressure error of a first one of the cam lobes of a pump element with the integral term of the rail pressure error for the or each of the other cam lobes of the same pump element; and, on the basis of the comparison, identifying the nature of the fault condition.