A life-time Universal Personal Telecommunication (UPT) number allows a user to change the Personal Communications service provider without changing his/her UPT number. Since a translation from the life-time UPT number to a routing address must be done for every call placed, it is essential to make this process efficient. Two general approaches are the table lookup method and the database query method. The life-time UPT number can be easily implemented in the database query method. However, the UPT-routing address translation cost in the database query method is much higher than in the table lookup method. Address translation can be done efficiently in the table lookup method, but pointer forwarding is required to support a life-time UPT number. To reduce the pointer forwarding cost, we modify the table lookup method by adding a cache at each cellular switch (in Taiwan, the number of cellular switches that need to equip with the caches is 8 for AMPS and 7 for GSM). We show that the cache scheme can remove most pointer forwarding operations for an originating switch if some PCS users are accessed more frequently than others.