Order acceptance and scheduling (OAS) is an important planning activity in make-to-order manufacturing systems. Making good acceptance and scheduling decisions allows the systems to utilise their manufacturing resources better and achieve higher total profit. Therefore, finding optimal solutions for OAS is desirable. Unfortunately, the exact optimisation approaches previously proposed for OAS are still very time consuming and usually fail to solve the problem even for small instances in a reasonable computational time. In this paper, we develop a new branch-and-bound (B&B) approach to finding optimal solutions for OAS. In order to design effective branching strategies for B&B, a new GP method has been proposed to discover good ordering rules. The results show that the B&B algorithms enhanced by GP can solve the OAS problem more effectively than the basic B&B algorithm and the CPLEX solver on the Mixed Integer Linear Programming model.