Correct forward port of code lifted from Intel version for calling self