to be of type program-error, as required by section 3.5.1.6 of the standard. From a patch by Eric Marsden.