1. A computer-readable medium having computer-executable instructions for causing a computer to perform steps comprising: provide a transactional memory system; create a normal version and a transactional version of each function of a software application that is marked as transaction-safe; create a normal version of each function that is not marked as transaction-safe; and for the normal version of each function that is marked as transaction-safe, point a stub pointer of the normal version to the transactional version.