Generally peroxyacid bleach precursors may be represented as: where L is a leaving group and X is essentially any functionality, such that on perhydrolysis the structure of the peroxyacid produced is: Suitable peroxyacid bleach precursor compounds typically contain one or more N- or O-acyl groups, which precursors can be selected from a wide range of classes.