The use of a knock intensity threshold set at a relatively high level is effective for identifying knocking cycles, but results in high Type II (false negative) classification errors. Many cycles, although classified as non-knocking cycles (i.e. below the threshold), are actually operating in an undesirably high knock rate region. A traditional controller is therefore likely to advance the spark further into this region, when the correct response would be to retard the spark. In this article, a new dual-threshold knock controller is presented in which a second threshold is introduced in order to identify non-knocking cycles more clearly. This enables the advance gain to be increased without adversely affecting other aspects of the response, thereby improving the transient and steady-state performance characteristics of the controller. The threshold values can also be optimized so as to minimize the total Type I and Type II misclassification errors, resulting in a significant improvement in most aspects of the controller response.