In this paper we present a dynamic bandwidth allocation algorithm for EPON, which makes use of the Multipoint Control Protocol (MPCP) with threshold reporting and with inter- and intra-ONU priority scheduling. Three varieties of this algorithm are compared, by means of a detailed simulation program, regarding average packet delay for several priorities, delay variation for constant bit rate (CBR) traffic and bandwidth utilization. We show that by introducing a specific intra-ONU priority scheduling algorithm, which takes the reported values into account, the bandwidth can be fully utilized. However, this scheduling algorithm causes an increased packet delay and delay variation for CBR traffic. In order to eliminate this drawback, we combine this scheduling algorithm with a rate-based scheme for the highest priority (CBR) traffic. This combined algorithm provides an interesting tradeoff between the efficiency, which is still near to the optimal, and the delay characteristics of time critical applications. Finally, we also include a comparison with a standard intra-ONU priority scheme.