A fuel injection system for a multi-cylinder internal combustion engine comprising: fuel injectors each of which sprays fuel into one of the cylinders of an internal combustion engine; and an injection controller working to perform a learning control function, a learning error determining function, and a malfunction specifying function, the learning control function being executed when the engine is placed in a given condition to regulate a pressure of fuel to be sprayed from each of the fuel injectors to each of given learning pressures, the learning control function injecting a learning spray of the fuel into the engine to sample a resulting change in operating condition of the engine to calculate an actual injection quantity that is the quantity of fuel expected to have been sprayed from the each of the fuel injectors and calculating an injection correction value required to bring the actual injection quantity toward a target quantity, the learning error determining function being to make a determination of whether there is an error in each of the injection correction values (Gn1-Gn4) or not which is calculated at one of the learning pressures for each of the fuel injectors, the malfunction specifying function being to analyze a result of the determination made by the learning error determining function to specify a malfunction occurring with regard to the fuel injection system, wherein the learning control function executes a learning operation to inject the learning spray of the fuel to calculate the actual injection quantity at each of the learning pressures for each of the fuel injectors, the learning control function determining whether a learning condition in which the given condition is encountered and the each of the learning pressures is reached is met or not each time the learning operation is executed, and wherein when the malfunction specifying function determines that the learning condition continues not to be met for a given period of time, said injection controller stops the learning control function from being performed to determine that the malfunction is occurring in the fuel injection system, wherein when the injection correction value exceeds a given guard value, the learning error determining function determines that there is an error in the injection correction value. fuel injectors each of which sprays fuel into one of the cylinders of an internal combustion engine; and an injection controller working to perform a learning control function, a learning error determining function, and a malfunction specifying function, the learning control function being executed when the engine is placed in a given condition to regulate a pressure of fuel to be sprayed from each of the fuel injectors to each of given learning pressures, the learning control function injecting a learning spray of the fuel into the engine to sample a resulting change in operating condition of the engine to calculate an actual injection quantity that is the quantity of fuel expected to have been sprayed from the each of the fuel injectors and calculating an injection correction value required to bring the actual injection quantity toward a target quantity, the learning error determining function being to make a determination of whether there is an error in each of the injection correction values (Gn1-Gn4) or not which is calculated at one of the learning pressures for each of the fuel injectors, the malfunction specifying function being to analyze a result of the determination made by the learning error determining function to specify a malfunction occurring with regard to the fuel injection system, wherein the learning control function executes a learning operation to inject the learning spray of the fuel to calculate the actual injection quantity at each of the learning pressures for each of the fuel injectors, the learning control function determining whether a learning condition in which the given condition is encountered and the each of the learning pressures is reached is met or not each time the learning operation is executed, and wherein when the malfunction specifying function determines that the learning condition continues not to be met for a given period of time, said injection controller stops the learning control function from being performed to determine that the malfunction is occurring in the fuel injection system, wherein when the injection correction value exceeds a given guard value, the learning error determining function determines that there is an error in the injection correction value.